Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2013 19:33:52

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

Изучаю 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()
По-идее в консоль должно выводиться значение x, но не выводит. Может поковыряться надо где?
ОС Ubuntu 12.04, python3.2.

Офлайн

#2 Окт. 9, 2013 19:49:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

Дайте скрин/скан аналогичного кода из книги, я сильно подозреваю, что Вы не один в один его воспроизвели.



Офлайн

#3 Окт. 9, 2013 19:57:53

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

kozlo22
FishHook прав в книге посмотри следущую страницу после указаного кода

Офлайн

#4 Окт. 10, 2013 01:28:36

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

FishHook,
vrabey,
Вот, пожалуйста:
1
2
3

Офлайн

#5 Окт. 10, 2013 05:17:15

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

Ну все время от времени слепы - sys.exit(app.exec_()) в конце позабыли



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#6 Окт. 10, 2013 23:39:36

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод информации в консоль.

PooH
спасибо. Я как всегда в своем репертуаре -_-'

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version