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

QTabWidget or QTabBar displaying the same QWidget in different tabs using C++

本文关键字:显示 QWidget 选项 C++ 使用 QTabWidget QTabBar      更新时间:2023-10-16

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

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

我想在多个具有不同值的选项卡中显示相同的 QWidget。有没有"干净"的?

米查

不,没有一种"干净"的方法可以做到这一点。该QTabWidget使用堆栈,因此您需要为每个选项卡设置单独的小部件。文档中说:

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

唯一的方法是实例化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信号,根据需要更改您的小部件。