#python #qt #enums #pyqt #pyqt4
#python #qt #перечисления #pyqt #pyqt4
Вопрос:
Я хотел бы использовать средства перечисления Qt. Я видел в документации модуля QtCore, что есть макросы Q_ENUMS, но я не знаю и информации, как его использовать.
Ответ №1:
В python (и PyQt) способ создания перечисления выглядит следующим образом:
class MyEnum(object):
One = 1
Two = 2
Three = 3
Если вам нужно больше функциональности, пожалуйста, предоставьте более подробную информацию о том, что вы пытаетесь сделать.
Редактировать
Просматривая документацию для QAbstractSocket.StateChanged, я вижу, что это относится к «Созданию пользовательских типов Qt». Я не знаю о какой-либо необходимости регистрации метатипов в PyQt4, поэтому все, что вам нужно сделать, чтобы использовать этот сигнал, это подключить его к соответствующему обработчику:
class Socket(QTcpSocket):
def __init__(self):
QTcpSocket.__init__(self)
self.stateChanged.connect(self.handleStateChanged)
def handleStateChanged(self, state):
print state
Комментарии:
1. Я должен передать сигнал об изменении некоторого состояния в объект, а также для проверки данных в слоте. Это делается в классе QTcpSocket — signal changeState
2. Спасибо, это открыло мне глаза. Действительно, регистрация метатипов не нужна. Я воспользуюсь перечислением гранта (…)