如何在全球范围内提供QVBoxLayout

时间:2014-11-13 21:54:14

标签: c++ qt

我正在尝试在Qt中全局使用QVBoxLayout。我无法从任何其他功能访问它。

 void MainWindow::on_actionF451_triggered()
{
    QVBoxLayout *compLay = new QVBoxLayout(ui->scrollArea);

我已经在这个函数中创建了它,然后在下面添加了大量的小部件,但是需要能够在另一个函数中清除这些小部件。 感谢

1 个答案:

答案 0 :(得分:1)

如果要在compLay类的任何位置访问变量MainWindow,请在mainwindow.hMainWindow类的定义中定义它(在Q_OBJECT宏之后)像这样:QVBoxLayout *compLay;

您可以根据自己的喜好更改compLay课程中的MainWindow

void MainWindow::on_actionF451_triggered(){
  compLay = new QVBoxLayout(ui->scrollArea);

或者您可以返回void MainWindow::on_actionF451_triggered()而非void的返回类型,但是QVBoxLayout *并直接返回您的布局(但是您需要更正连接语句(我假设您没有一个它是自动连接的并将它连接到插槽,你需要这个布局来清理或修改或记住)