QT枚舉類型與字符串類型相互轉換


在QT中將枚舉類型注冊(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元對象進行枚舉類型與字符串類型轉換了。

代碼示例:

#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中我們可以這樣使用枚舉類型:

QTabBar#CustomTabBar {
    /* Qt::AlignmentFlag定義 */
    qproperty-text_align: "AlignLeft | AlignVCenter";
}

 QT中判斷信號是否與槽連接:

QPushButton btn;
int receivers = btn.receivers(SIGNAL(clicked(bool));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM