QTabWidget 或 QTabBar 使用 C++ 在不同选项卡中显示相同的 QWidget
Posted
技术标签:
【中文标题】QTabWidget 或 QTabBar 使用 C++ 在不同选项卡中显示相同的 QWidget【英文标题】:QTabWidget or QTabBar displaying the same QWidget in different tabs using C++ 【发布时间】:2016-06-02 14:46:23 【问题描述】:我现在正在使用一个 QTabWidget,它只显示一个具有不同元素(标签、按钮等)的 QWidget。使用 Ubuntu 和 Qt5.5。
QTabWidget *tw;
QString title = "1";
ui->tw->addTab(&tab, title); // tab is my QWidget
我想在多个选项卡中显示相同的 QWidget 并具有不同的值。有没有“干净”的地方?
米夏
【问题讨论】:
【参考方案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
信号,根据您的需要更改您的小部件。
【讨论】:
感谢您的快速回复。太糟糕了,我不能多次插入同一个小部件。你有关于 QTabBar 而不是 QTabWidget 的经验吗? 你有可以分享的例子吗?我不完全确定如何简单地使用 QTabBar.. :/ 成功了!非常感谢你的帮助。虽然想不出更简单的解决方案。 :) 标记为已解决!以上是关于QTabWidget 或 QTabBar 使用 C++ 在不同选项卡中显示相同的 QWidget的主要内容,如果未能解决你的问题,请参考以下文章
如何确定一个点是不是在 QTabWidget 的 QTabBar 旁边?