[英]Qt attribute(property) binding to QLabel
嗨,我是 Qt 的新手。
我可以將 class 屬性(或屬性)綁定到 QLabel 文本嗎? 例如,
class Dog{
string name;
}
QLabel lbl;
當我更改狗的名字時,我想更改 lbl.text
在 Qt 中您正在談論的事情 - 信號和插槽領域的好方法:
狗.h
#ifndef DOG_H
#define DOG_H
#include "QObject"
class Dog: public QObject
{
Q_OBJECT
public:
void setDogsName(const QString &name)
{
m_Name = name;
emit dogsNameChanged(name);
}
signals:
void dogsNameChanged(const QString &name);
private:
QString m_Name;
};
#endif // DOG_H
Q_OBJECT 宏需要信號/插槽連接工作(並且它必須在私有部分/公共之上:)。 代碼必須在分開的.h 文件中 ( )
主要的:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel lbl;
Dog dog;
QObject::connect(&dog, &Dog::dogsNameChanged, &lbl, &QLabel::setText);
dog.setDogsName("TEST");
lbl.show();
return a.exec();
}
結果:這里
閱讀 Qt https://doc.qt.io/qt-6/signalsandslots.ZD7235FDC70D8EC286中的連接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.