我在QT设计器
中创建了一个带有小部件的UI文件'testScreen.ui'
'testScreen.cpp'
'testScreen.h'
现在我在另一个ccp文件'sstApplication.cpp'中创建TestScreen类的对象
TestScreen *obj = new TestScreen()
现在当我尝试访问testScreen.ui'
的小部件时this->ui->next_But->setEnabled(true);
我无法做到
答案 0 :(得分:3)
使用QtDesigner时,子窗口小部件将封装到生成的Ui类中。您有两种方法可以使用它:
1)为ui类编写一个getter。这是一个糟糕的方法,因为它违反了封装:
public:
Ui::TestScreen *ui() const { return ui; }
并从您的sstApplication.cpp访问它:
TestScreen *obj = new TestScreen()
obj->ui()->next_But->setEnabled(true);
2)为下一个按钮状态设置一个setter:
public:
void enableNextButton(bool enabled = true) { this->ui->next_But->setEnabled(enabled); }
并像这样使用它:
obj->enableNextButton();
但是,最好的解决方案是将窗口小部件状态管理逻辑封装到TestScreen