在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了。
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include <QtCore/QMetaEnum>
int main() { QMetaEnum metaEnum = QMetaEnum::fromType<Qt::Alignment>();
Qt::Alignment alignment = (Qt::Alignment)metaEnum.keyToValue("Qt::AlignLeft"); alignment = (Qt::Alignment)metaEnum.keysToValue("Qt::AlignLeft | Qt::AlignVCenter");
const char* s = metaEnum.valueToKey(Qt::AlignCenter); return 0; }
|
在qss中我们可以这样使用枚举类型:
1 2 3 4
| QTabBar#CustomTabBar { qproperty-text_align: "AlignLeft | AlignVCenter"; }
|
QT中判断信号是否与槽连接:
1 2
| QPushButton btn; int receivers = btn.receivers(SIGNAL(clicked(bool));
|