QTabWidget或QTabBar使用C ++在不同的选项卡中显示相同的QWidget

时间:2016-06-02 14:46:24

标签: c++ qt qwidget qtabwidget qtabbar

我正在使用QTabWidget,现在只显示一个带有不同元素的QWidget(标签,按钮......)。使用Ubuntu和Qt5.5。

QTabWidget *tw;
QString title = "1";
ui->tw->addTab(&tab, title); // tab is my QWidget

我想在多个具有不同值的选项卡中显示相同的QWidget。它有“干净”吗?

米莎

1 个答案:

答案 0 :(得分:1)

不,没有"清洁"这样做的方法。 QTabWidget使用堆栈,因此您需要为每个选项卡分别设置小部件。在documentation

中说道
  

每个标签都与不同的小部件(称为页面)相关联。

唯一的方法是实例化QWidget的多个实例,并将它们添加到QTabWidget

QTabWidget *tw;
QString title  = "1";
QString title2 = "2";
ui->tw->addTab(&tab, title);   // tab is your QWidget
ui->tw->addTab(&tab2, title2); // tab2 is another QWidget

如果您想使用QTabBar,只需将您的小部件放入其中(例如,使用QVBoxLayout)。然后连接到QTabBar的currentChanged信号,根据您的需要更改您的小部件。