QTabWidget 或 QTabBar 使用 C++ 在不同的选项卡中显示相同的 QWidget
QTabWidget or QTabBar displaying the same QWidget in different tabs using C++
我现在正在使用 QTabWidget,它只显示一个具有不同元素(标签、按钮等)的 QWidget。使用 Ubuntu 和 Qt5.5。
QTabWidget *tw;
QString title = "1";
ui->tw->addTab(&tab, title); // tab is my QWidget
我想在多个具有不同值的选项卡中显示相同的 QWidget。有 "clean" 吗?
米卡
不,没有 "clean" 方法可以做到这一点。 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
信号以根据您的需要更改您的小部件。
我现在正在使用 QTabWidget,它只显示一个具有不同元素(标签、按钮等)的 QWidget。使用 Ubuntu 和 Qt5.5。
QTabWidget *tw;
QString title = "1";
ui->tw->addTab(&tab, title); // tab is my QWidget
我想在多个具有不同值的选项卡中显示相同的 QWidget。有 "clean" 吗?
米卡
不,没有 "clean" 方法可以做到这一点。 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
信号以根据您的需要更改您的小部件。