私はPythonとPyQtの新機能です。私は複数のクラスを持っているときにいくつかのボタンアクションを動作させるのに問題があります。PyQtは複数のクラスを使用してボタンコマンドを割り当てます
class main(QDialog):
def __init__(self, parent=None, *args):
QDialog.__init__(self, parent, *args)
self.setupUi(self)
def setupUi(self, Dialog):
Dialog.resize(610, 570)
Dialog.setWindowTitle(QtGui.QApplication.translate("testing",
"testing", None, QtGui.QApplication.UnicodeUTF8))
self.stackedWidget = QtGui.QStackedWidget(Dialog)
self.stackedWidget.setGeometry(QtCore.QRect(0, 120, 711, 450))
for i in range(1, 3):
self.__dict__['page%d' % i] = QtGui.QWidget()
self.stackedWidget.addWidget(self.__dict__['page%d' % i])
self.Ui_Customer = Ui_Customer(Dialog, self.page1)
# QtCore.QObject.connect(self.Ui_Customer.pushButton_2,
# QtCore.SIGNAL("clicked()"), self.clearalltextboxes)
# def clearalltextboxes(self):
# for i in range(1, 13):
# self.Ui_Customer.__dict__['textEdit_%d' % i].clear()
self.stackedWidget.setCurrentIndex(0)
class Ui_Customer(main):
def __init__(self, Dialog, page):
for i in range(1, 3):
self.__dict__['text_%d' % i] = QtGui.QTextEdit(page)
self.text_1.setGeometry(QtCore.QRect(10, 10, 81, 21))
self.text_2.setGeometry(QtCore.QRect(240, 10, 81, 21))
self.pushButton_2 = QtGui.QPushButton(page)
self.pushButton_2.setGeometry(QtCore.QRect(130, 160, 101, 23))
self.pushButton_2.setText("Reset")
QtCore.QObject.connect(self.pushButton_2,
QtCore.SIGNAL("clicked()"), self.clearalltextboxes)
def clearalltextboxes(self):
for i in range(1, 3):
self.Ui_Customer.__dict__['textEdit_%d' % i].clear()
if __name__ == "__main__":
app = QApplication(sys.argv)
myapp = main()
myapp.show()
sys.exit(app.exec_())
問題は、私は「リセット」ボタン(pushbutton_2)何も押さない場合に発生するということです(私ものpython内のエラーのいずれかの種類を得ることはありません):たとえば、私のコードでは、私は次のことを持っています。私は、私のコードからコメントのセクションを削除すると、それを動作させることができます。私の唯一の問題は、Ui_Customerクラスにボタンアクションコマンドを残したいということでした。これを行う方法はありますか?
QtCore.QObject.connectオプションを使用してボタンにアクションを割り当てるいくつかのクラスを最終的に作成します。 main()クラスに追加することなく最初のものを動作させるのに問題があります。
質問とは無関係: 'QObject.connect' +' QtCore.SIGNAL'を絶対に使用しないでください。 'my_button.clicked.connect(some_function)'を使う – JBernardo