PyQt4 中的 Q_ENUMS

Posted

技术标签:

【中文标题】PyQt4 中的 Q_ENUMS【英文标题】:Q_ENUMS in PyQt4 【发布时间】:2011-10-13 21:49:35 【问题描述】:

我想使用 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

【讨论】:

我必须将某个状态变化的信号传递给一个对象,并检查插槽中的数据。在 QTcpSocket 的类中就是这样做的——信号 changeState 谢谢,它让我大开眼界。真的,没有必要注册元类型。我将利用 grant enum(...)

以上是关于PyQt4 中的 Q_ENUMS的主要内容,如果未能解决你的问题,请参考以下文章

QT元编程----Q_ENUMS

PyQt4 中的滑块

QTableWidget 和 PyQt4 中的列宽

从pyqt4中的listWidget返回值

pyqtgraph删除pyqt4 gui中的持久图例

pyqt4中的线程