PySide QPushButton防止在3dsMax中多次单击

时间:2018-10-06 07:45:09

标签: python-2.7 pyside qthread 3dsmax

我有问题。

我曾经使用过Anaconda的qt设计师。 这是代码。

from PySide import QtCore, QtGui

class Thread(QtCore.QThread):
    def run(self):
        print("aaaaa")
        QtCore.QThread.sleep(2)
        self.finished.emit()

class Ui_MainWindow(object):
    def btn_event(self):
        self.pushButton.setEnabled(False)
        self.thread.start() #programe down in 3dsmax

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(357, 158)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtGui.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(220, 70, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.btn_event)
        self.thread = Thread()          
        self.thread.finished.connect(lambda:self.pushButton.setEnabled(True))
        MainWindow.setCentralWidget(self.centralwidget)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.label.setText(_translate("MainWindow", "no button"))

if __name__ == "__main__":
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()

此代码运行良好。就像我想要的。 所以我转换了代码,在3dsMAX中工作。

这是代码

self.thread.start()

3dsMAX版本,适用于视图。 但是单击按钮,注意到发生了。 因此,我退出了ui,并在重启后退出。 3dsMAX下降....... 我尝试 self.thread.run()-> {{1}}

在这种情况下。 3dsMAX不会掉线。但可以多次点击 如何修复此代码。 拜托我需要你的帮忙。

0 个答案:

没有答案