我正在尝试创建一个简单的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)
答案 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_())
希望这会有所帮助