Page 246 - 6734
P. 246
атрибутом state, логічне значення якого змінюється на
протилежне під час натиску на неї. Крім того це значення
відображається на самій кнопці.
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyButton(QPushButton): # клас успадковує
QPushButton
state = True
def __init__(self, state,parent=None): #
конструктор
super(MyButton, self).__init__(parent) #
виклик конструктора QPushButton
self.state=state # стан кнопки (True, False)
self.setText(self.state.__str__()) #
установити надпис на кнопці
# приєднати сигнал clicked() до слота
self.change_state()
self.connect(self, SIGNAL("clicked()"),
self.change_state)
def change_state(self): # обробник сигналу
clicked()
if self.state: # якщо стан True
self.emit(SIGNAL("state_true"),
self.state) # генерувати сигнал state_true
self.state=False # змінити стан
else: # інакше генерувати сигнал state_false
self.emit(SIGNAL("state_false"),
self.state)
self.state=True # змінити стан
self.setText(self.state.__str__()) #
установити надпис на кнопці
245