将QT表格事件连接到功能

时间:2017-05-18 16:17:38

标签: python pyqt4

我正在尝试创建一个简单的QT用户界面。我无法将用户表单事件连接到函数。该功能是可操作的,但我似乎无法将其连接到用户表单事件。我尝试了两种方法,如下所述:http://zetcode.com/gui/pyqt4/eventsandsignals/请参阅下面的代码段。

尝试连接

    #Connect Form Events to Functions
    QtCore.QObject.connect(self.dlg.radioButton, QtCore.SIGNAL('toggled()'), self.enableOne)
    #self.dlg.radioButton.toggled.connect(self.enableOne)
    self.dlg.radioButton_2.toggled.connect(self.enableTwo) 
    self.dlg.radioButton_3.toggled.connect(self.enableThree)    

功能定义

def enableOne(self):
    if self.dlg.radioButton.isChecked() == True:
        self.dlg.pointButton.setEnabled(True)
    else:
        self.dlg.pointButton.setEnabled(False)  
##Use point later as point(s)-of-origin
def enableTwo(self):
    if self.dlg.radioButton_2.isChecked() == True:
        self.dlg.comboBox_2.setEnabled(True)
    else:
        self.dlg.comboBox_2.setEnabled(False)                     
##Input Latitude and Longitude
def enableThree(self):  
    if self.dlg.radioButton_3.isChecked() == True:
        self.dlg.lineEdit_2.setEnabled(True)
        self.dlg.lineEdit_3.setEnabled(True)
    else:
        self.dlg.lineEdit_2.setEnabled(False)
        self.dlg.lineEdit_3.setEnabled(False)   

1 个答案:

答案 0 :(得分:0)

您的代码看起来正确,尝试发布更好的示例: How to create a Minimal, Complete, and Verifiable example

您可以尝试我的短代码,信号正常工作:

import sys
from PyQt4 import QtGui, QtCore

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 500, 300)

        self.rb1 = QtGui.QRadioButton("button1", self)
        self.rb1.setGeometry(100, 50, 200, 20)
        self.rb1.toggled.connect(self.one)
        self.rb2 = QtGui.QRadioButton("button2", self)
        self.rb2.setGeometry(100,100, 200, 20)
        self.rb2.toggled.connect(self.two)

        self.lbl1 = QtGui.QLabel("text", self)
        self.lbl1.setGeometry(100,150, 200, 20)

    def one(self):
        self.lbl1.setText("one")

    def two(self):
        self.lbl1.setText("two")


app = QtGui.QApplication(sys.argv)
GUI = Window()
GUI.show()
sys.exit(app.exec_())

希望这会有所帮助