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

标签 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。有“干净”的说法吗?

米夏

最佳答案

不,没有一种“干净”的方法可以做到这一点。 QTabWidget 使用堆栈,因此您需要为每个选项卡拥有单独的小部件。据说documentation :

Each tab is associated with a different widget (called a page).

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

关于c++ - 使用 C++ 在不同选项卡中显示相同 QWidget 的 QTabWidget 或 QTabBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595132/

相关文章:

c++ - 在 Objective-C++ 中处理 Cocoa setAction 消息

c++ - 在 C++ 中是否可以有可变数量的字符串数组?

qt - 是否有支持 CSS3 列的 wkhtmlto(pdf/image) 版本?

c++ - 使用 C++ 接口(interface)在 Prolog 中进行列表处理

c++ - 如何为小部件创建自定义布局

javascript - 如何只匹配那些前面有偶数个 `%` 的数字?

c++ - 将 QProgressBar 设置为从逻辑层更新的正确方法是什么?

qt - 结合 Qt Widgets 和 QML 与 QWidget::createWindowContainer()

c++ - 是否可以设置 qt 小部件的不透明度?

c++ - 具有相同元素的数组初始化