簡體   English   中英

使用Qt中的指針更改布局內容

[英]Change layout content with pointers in Qt

是否可以使用指針更改布局的內容?

我想做類似以下的事情。

在標題中:

QWidget* activeView;
QWidget* one;
QWidget* two;
...

在源文件中,我在構造函數中設置了Widget,然后將第一個推送到布局:

activeView = one;
ui->activeLayout->addWidget(activeView);

后來有了插槽或方法,我想更改activeView

activeView = two;

我試過了,但是行不通。 我什至調用了布局的update()方法。

不幸的是,這將無法正常工作。

您想要的是QStackedWidget 官方文檔在這里

如果您不想使用此小部件並希望手動進行操作,則必須自己在代碼中重建布局。 它可以包裝在一個方法中,不會太難看。

例:

void clearLayout(QLayout *layout) 
{
    if (layout) {
        while(layout->count() > 0){
            QLayoutItem *item = layout->takeAt(0);
            delete item->widget();
            delete item;
        }
    }
}

void setNewWidgetVisible(QWidget *activeView)
{
   clearLayout(ui->activeLayout);
   ui->activeLayout->addWidget(activeView);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM