Я изучаю программирование GUI с использованием python и pyqt4 , и это приложение, над которым я работаю, чтобы изучить сигналы и слоты. Это простое приложение, в котором есть спинбокс и диалоговое окно, которые соединяются вместе с использованием сигналов pyqt. но я добавил класс zerospinbox, он должен печатать массаж для консоли каждый раз, когда значение spinbox или dialogbox становится равным нулю и подсчитывает количество его появления с использованием сигнала QObject.Emit(). Я последовал за учебник книгу, чтобы написать это и все, что я делаю это не показывает massage.So, если вы можете, пожалуйста, взгляните на код и скажите мне, где я не прав:PyQt4 Signal и QObject.Emit()
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
dial = QDial()
dial.setNotchesVisible(True)
spinbox = QSpinBox()
layout = QHBoxLayout()
layout.addWidget(dial)
layout.addWidget(spinbox)
zerospinbox = ZeroSpinBox()
self.setLayout(layout)
self.connect(dial, SIGNAL("valueChanged(int)"),
spinbox,SLOT("setValue(int)"))
self.connect(spinbox, SIGNAL("ValueChanged(int)"),
dial,SLOT("setValue(int)"))
self.setWindowTitle("Signal and Slots")
zerospinbox = ZeroSpinBox()
self.connect(zerospinbox, SIGNAL("atzero"),self.announce)
def announce(self,zeros):
print("ZeroSpinBox has been at zero %d times" % zeros)
class ZeroSpinBox(QSpinBox):
zeros=0
def __init__(self, parent=None):
super(ZeroSpinBox, self).__init__(parent)
self.connect(self, SIGNAL("valueChanged(int)"), self.checkzero)
def checkzero(self):
if self.value()==0:
self.zeros +=1
self.emit(SIGNAL("atzero"),self.zeros)
app =QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
благодаря
спасибо. книга, которую я читаю, чтобы узнать, как программировать gui с pyqt4 устарела, я думаю. знаете ли вы какую-либо книгу или учебник, которые можно использовать для изучения pyqt4 или pyqt5? –
@kouroshdaryaee. В [PyQt Wiki] (http://wiki.python.org/moin/PyQt) есть несколько полезных ссылок, но они не все обновлены. – ekhumoro