【发布时间】:2016-04-25 01:53:50
【问题描述】:
我在 QtCreator 中有几个从同一个类提升的小部件。但是,我希望它们在两者之间有细微差别,所以我想在 UI 文件中传递一些差异,提升的类可以用来区分自己。动态属性似乎是要走的路,所以在 UI 编辑器中我为每个提升的小部件分配了一个动态属性。在代码中我尝试访问该属性,但注意到它似乎只能在构造后使用(可能是因为 Qt 在创建对象后调用setProperty()。
MyWidget::MyWidget(QWidget* parent) : QGLWidget(parent)
{
this->property("someProperty").toString(); // returns blank
}
void MyWidget::initializeGL()
{
this->property("someProperty").toString(); // returns string set in UI file
}
所以我的问题是人们如何将这些属性用于构造函数类型的东西?我可以在 initializeGL 中这样做,但这似乎很奇怪,因为这些属性可能与初始化 OpenGL 无关。我想我也可以连接到属性更改信号并在那里进行。这是处理这个问题的常用方法吗?
【问题讨论】:
标签: c++ qt qt-creator