我想知道如何使用我根据所选的opencv过滤器预先定义的小部件填充空白区域。我看了qhide和qshow,但是当我在同一个窗口中有12个不同的过滤器时,杂乱就成了问题。
有什么建议吗?
答案 0 :(得分:1)
我认为最好的方法是使用QStackedWidget类。您可以在其上创建具有不同小部件的多个页面并添加到堆栈。
stack->addWidget(widget);
然后当您在组合框中选择一些值时,您可以在堆栈小部件中显示适当的页面。
stack->setCurrentIndex(index);
答案 1 :(得分:0)
您可以在主窗口的合适位置添加布局,并根据需要添加或删除小部件。
如果您希望它们始终在后台同步,则可以在构造函数中创建所有窗口小部件实例。如果不需要,您可以在需要时创建实例,并在不需要时删除它们。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
widget1 = new MyWidget1;
widget2 = new MyWidget2;
widget3 = new MyWidget3;
// myWidgetlayout could be a QHBoxLayout or a QVBoxLayout
ui->myWidgetlayout->addWidget(widget1);
.... //Continue with rest of the things
}
每当您想要更改窗口小部件时,您都可以执行以下操作:
ui->myWidgetlayout->removeWidget(widget1);
ui->myWidgetlayout->addWidget(widget2);