Qt属性(属性)绑定到QLabel

  • 本文关键字:属性 QLabel 绑定 Qt c++ qt
  • 更新时间 :
  • 英文 :


嗨,我是Qt的新手。

我可以将类属性(或属性(绑定到QLabel文本吗?例如,

class Dog{
string name;
}
QLabel lbl;

当我更改狗的名字时,我想更改lbl.text

在Qt中,您谈论的是信号和插槽的领域。好方法:

Dog.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宏才能工作(并且它必须在private部分中,例如这里的public:之上(。代码必须在一个单独的.h文件中(!(。

main:

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中的连接。

最新更新