Форум сайта python.su
Изучаю PyQt по книге Прохоренка Н.А. “Создание оконных приложений на Python3”.
Постоянно сталкиваюсь с такой проблемой: допустим есть такой код(взят из учебника):
from PyQt4 import QtCore, QtGui class MyThread(QtCore.QThread): x = 10 # Атрибут класса mutex = QtCore.QMutex() # Мьютекс def __init__(self, id, parent=None): QtCore.QThread.__init__(self, parent) self.id = id def run(self): self.change_x() def change_x(self): MyThread.mutex.lock()# Блокируем print("x =", MyThread.x, "id =", self.id) MyThread.x += 5 self.sleep(2) print("x =", MyThread.x, "id =", self.id) MyThread.x += 34 print("x =", MyThread.x, "id =", self.id) MyThread.mutex.unlock()# Снимаем блокировку class MyWindow(QtGui.QPushButton): def __init__(self): QtGui.QPushButton.__init__(self) self.setText("Запустить") self.thread1 = MyThread(1) self.thread2 = MyThread(2) self.connect(self, QtCore.SIGNAL("clicked()"), self.on_start) def on_start(self): if not self.thread1.isRunning(): self.thread1.start() if not self.thread2.isRunning(): self.thread2.start() if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) window = MyWindow() window.setWindowTitle("Использование класса QMutex") window.resize(300, 30) window.show()
Офлайн
Дайте скрин/скан аналогичного кода из книги, я сильно подозреваю, что Вы не один в один его воспроизвели.
Офлайн
kozlo22
FishHook прав в книге посмотри следущую страницу после указаного кода
Офлайн
Офлайн
Ну все время от времени слепы - sys.exit(app.exec_()) в конце позабыли
Офлайн
PooH
спасибо. Я как всегда в своем репертуаре -_-'
Офлайн