Форум сайта python.su
0
Rodegast тут да работает с PyQt_PyObject …
Установил Python на рабочий комп проверил с PyQt_PyObject работает..
спасибо..
Офлайн
0
Rodegast Да так работает…
from PyQt4 import QtCore, QtGui class MyThread(QtCore.QThread): def __init__(self, parent=None): QtCore.QThread.__init__(self, parent) def run(self): for i in range(1, 21): self.sleep(1) self.emit(QtCore.SIGNAL("mysignal(PyQt_PyObject)"), "Кнопка НЕ АКТИВНА: %s" % i) class MyThread2(QtCore.QThread): def __init__(self, parent=None): QtCore.QThread.__init__(self, parent) def run(self): for i in range(1, 21): self.sleep(1) self.emit(QtCore.SIGNAL("mysignal(PyQt_PyObject)"), "Кнопка2 НЕ АКТИВНА: %s" % i) class MyWindow(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.label = QtGui.QLabel("Процесс не запущен") self.label.setAlignment(QtCore.Qt.AlignCenter) self.Btn = QtGui.QPushButton('&Кнопка1 АКТИВНА') # Создаём кнотку self.Btn2 = QtGui.QPushButton('&Кнопка2 АКТИВНА') # Создаём кнотку self.vbox = QtGui.QVBoxLayout() self.vbox.addWidget(self.label) self.vbox.addWidget(self.Btn) self.vbox.addWidget(self.Btn2) self.setLayout(self.vbox) self.thread=MyThread() # Обработка событиия self.connect(self.Btn, QtCore.SIGNAL("clicked()"), self.Tm1) # Метод обработки нажатия self.connect(self.thread, QtCore.SIGNAL("started()"), self.on_started_1) self.connect(self.thread, QtCore.SIGNAL("finished()"), self.on_finished_1) self.connect(self.thread, QtCore.SIGNAL("mysignal(PyQt_PyObject)"), self.on_change_1, QtCore.Qt.QueuedConnection) self.thread2=MyThread2() # Обработка События self.connect(self.Btn2, QtCore.SIGNAL("clicked()"), self.Tm2) # Метод обработки нажатия self.connect(self.thread2, QtCore.SIGNAL("started()"), self.on_started_2) self.connect(self.thread2, QtCore.SIGNAL("finished()"), self.on_finished_2) self.connect(self.thread2, QtCore.SIGNAL("mysignal(PyQt_PyObject)"), self.on_change_2, QtCore.Qt.QueuedConnection) # Процесс Кнопка 1 def Tm1(self): self.thread.start() def on_started_1(self): self.setWindowOpacity(0.9) self.Btn.setDisabled(True) self.label.setText("Процесс запущенен") def on_finished_1(self): self.Btn.setText("&Кнопка1 АКТИВНА") self.label.setText("Процесс окончен") self.Btn.setDisabled(False) def on_change_1(self, s): self.Btn.setText(s) #--------------------------------------------------- # процесс Кнопка 2 def Tm2(self): self.thread2.start() def on_started_2(self): self.setWindowOpacity(0.9) self.Btn2.setDisabled(True) self.label.setText("Процесс запущенен") def on_finished_2(self): self.Btn2.setText("&Кнопка1 АКТИВНА") self.label.setText("Процесс окончен") self.Btn2.setDisabled(False) def on_change_2(self, s): self.Btn2.setText(s) #--------------------------------------------------- if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) window = MyWindow() window.setWindowTitle("Заголовок окна") window.resize(300, 70) window.show() sys.exit(app.exec_())
Отредактировано OzXaker (Фев. 5, 2016 19:42:18)
Офлайн