我正在尝试在Qt中全局使用QVBoxLayout。我无法从任何其他功能访问它。
void MainWindow::on_actionF451_triggered()
{
QVBoxLayout *compLay = new QVBoxLayout(ui->scrollArea);
我已经在这个函数中创建了它,然后在下面添加了大量的小部件,但是需要能够在另一个函数中清除这些小部件。 感谢
答案 0 :(得分:1)
如果要在compLay
类的任何位置访问变量MainWindow
,请在mainwindow.h
类MainWindow
类的定义中定义它(在Q_OBJECT宏之后)像这样:QVBoxLayout *compLay;
您可以根据自己的喜好更改compLay
课程中的MainWindow
:
void MainWindow::on_actionF451_triggered(){
compLay = new QVBoxLayout(ui->scrollArea);
或者您可以返回void MainWindow::on_actionF451_triggered()
而非void
的返回类型,但是QVBoxLayout *
并直接返回您的布局(但是您需要更正连接语句(我假设您没有一个它是自动连接的并将它连接到插槽,你需要这个布局来清理或修改或记住)