在我的QT应用程序中,我使用QTabWidget进行基本导航。我在ui中设置了这个QTabWidget。在QTabWidget的一些选项卡中,我需要让QStackedWidget能够“在视图中向下钻取”。
我尝试在ui中添加QStackedWidget,但它会自动将一个页面添加到堆栈中。我想在代码中添加QStackedWidget的页面。如果我在代码中尝试这样做,stackWidget已经有了一个标准页面,所以myWidget将成为堆栈中的第二个。
MyWidget *myWidget = new MyWidget(ui.stackedWidget);
ui.stackedWidget->addWidget(myWidget);
在QTabWidget标签中设置QStackedWidget的最佳和最简单方法是什么?
答案 0 :(得分:1)
怎么样:
QTabWidget *myTabWidget = new QTabWidget(this);
QStackedWidget *myStackedWidget = new QStackedWidget(myTabWidget);
myTabWidget->addTab(myStackedWidget, "Stacked Widget");
您还可以删除Qt Designer / Creator中的所有现有堆栈页面。只需右键单击堆叠的窗口小部件,然后删除所有现有页面。然后,您可以使用addWidget()
在代码中添加所需的页面。
答案 1 :(得分:0)
我会说 - 在ui中创建它,就像你一样(这样更容易布局/定位,稍后在选项卡上添加其他小部件等),但只需删除所有现有页面(由设计师添加)代码并添加新代码。
实际上,Qt 4.6中的Designer允许从堆叠小部件中删除所有页面 - 您需要右键单击,转到子菜单“Y的页面X”,然后选择“删除”。重复,直到所有页面都消失:)
也许这最近才被添加到Designer中,所以如果你有早期版本的Qt,你可能仍然需要从代码中删除它们。
说到将内容保留在ui中以防止它保留在代码中,我会投票“尽可能多地在UI文件中”:)