在我的QT应用程序中,我使用QTabWidget作为基本导航。此QTabWidget是我在ui中设置的。在QTabWidget的一些选项卡中,我需要有QStackedWidget才能“在视图中向下钻取”。
我也尝试在ui中添加QStackedWidget,但它会自动将页面添加到堆栈中。我想在代码中添加QStackedWidget的页面。如果我在代码中尝试这样做,那么stackedWidget已经有了一个标准页面,所以myWidget将是堆栈中的第二个页面。
MyWidget *myWidget = new MyWidget(ui.stackedWidget);
ui.stackedWidget->addWidget(myWidget);设置QStackedWidget inside QTabWidget选项卡的最佳且最简单的方法是什么?
发布于 2010-01-26 17:57:20
这样如何:
QTabWidget *myTabWidget = new QTabWidget(this);
QStackedWidget *myStackedWidget = new QStackedWidget(myTabWidget);
myTabWidget->addTab(myStackedWidget, "Stacked Widget");您还可以在Qt的Designer/Creator中删除所有现有的堆栈页面。只需右键单击堆叠的小部件并删除所有现有页面。然后,您可以使用addWidget()在代码中添加所需的页面。
发布于 2010-01-26 19:37:39
我要说的是-在ui中创建它,就像你做的那样(这样更容易布局/定位,稍后在标签上添加其他小部件,等等),但只需从代码中删除所有现有的页面(由designer添加)并添加新页面。
实际上,Qt4.6中的Designer允许从堆叠的小部件中删除所有页面-您需要右键单击,转到子菜单"Page X of Y",然后选择Delete。重复上述操作,直到所有页面都消失:)
也许这是最近才添加到设计器中的,所以如果你有早期版本的Qt,你可能仍然需要从代码中删除它们。
说到将东西放在ui中而不是放在代码中,我赞成“尽可能多地放在UI-file中”:)
https://stackoverflow.com/questions/2138567
复制相似问题