我是C++和Qt的新手,我正在尝试从父类访问一个小部件.
这是我的mainwindow.cpp
MainWindow::MainWindow( QWidget *parent )
: QMainWindow( parent )
, ui( new Ui::MainWindow )
{
ui->setupUi(this);
}
Run Code Online (Sandbox Code Playgroud)
我有另一个类,我试图从该类中的"ui"访问一个小部件.像这样:
DashBoard::DashBoard( MainWindow *parent ) : QObject( parent )
{
}
void DashBoard::select( )
{
parent->ui->menuSL->setCurrentIndex(0);
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,说无法解决方法和字段.但是当我把这一行parent->ui->menuSL->setCurrentIndex(0);放在构造函数中时,没有问题.
有人请指出我的错误吗?
在您的 select 方法中,您尝试使用名为 的变量parent。但你需要QObject::parent()方法。
此外,您需要将父级强制转换为QMainWindow.
void DashBoard::select( ) {
QMainWindow* parent = qobject_cast<QMainWindow>(this->parent());
if (parent == 0) { return; } // or some other error handling
parent->ui->menuSL->setCurrentIndex(0);
}
Run Code Online (Sandbox Code Playgroud)
您只能ui在公开的情况下访问。
总而言之,我认为您应该在MainWindow类中提供一个方法来执行您想要的操作。
| 归档时间: |
|
| 查看次数: |
6605 次 |
| 最近记录: |