我在QtCreator中有幾個小部件,它們是從同一個類中提升的。但是,我希望他們在兩者之間有細微的差異,所以我想通過UI文件中的一些差異來提升類可以用來區分自己。動態屬性看起來像是在UI編輯器中這樣做的方式,我爲每個提升的小部件分配了一個動態屬性。在代碼中,我試圖訪問屬性,但發現它似乎只提供施工後(大概是因爲Qt是調用setProperty()
創建對象之後。Qt:我什麼時候可以從qtcreator訪問動態屬性?
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沒有關係,我想我也可以連接到屬性更改信號並在那裏執行。 ?此
我標記你的答案是正確的,因爲它的工作原理,但我最終採取了不同的方法。我剛剛創建了具有這些屬性的瘦子類,以便在構建時可用,並在Qt創建者中提升這些屬性。看起來比使用ui文件中的屬性更清潔,並且不得不處理另一個init函數。 – voodoogiant
絕對是更好的方法。由於打字速度,我當時正在一個小報上,因此直接遇到了問題。 –