0
我想在QTabWidget的头文件中插入QLabel和QLineEdit。我已阅读Qt的文档,但无法找到任何可以在QTabWidget的头文件中设置任何Qwidget的函数。如何在QTabWidget头文件中设置QWidget?
我该怎么做?或者我是否必须重写QTabWidget Painter函数?
有什么建议吗?
我想在QTabWidget的头文件中插入QLabel和QLineEdit。我已阅读Qt的文档,但无法找到任何可以在QTabWidget的头文件中设置任何Qwidget的函数。如何在QTabWidget头文件中设置QWidget?
我该怎么做?或者我是否必须重写QTabWidget Painter函数?
有什么建议吗?
必须使用setTabButton功能:
无效QTabBar :: setTabButton(INT指数,ButtonPosition位置,QWidget的 *插件)
设置的选项卡索引部件。小部件根据位置放置在左侧或右侧。
隐藏了以前设置的位置控件。
标签栏将小部件的所有权,因此所有小工具设置 这里将标签栏,除非你 分别设置一些其他部件后重新设置父级的部件被删除时,它被销毁(或0)。
此功能是在Qt 4.5中引入的。
这不是QTabWidget
但其QTabBar
相关。
要获得QtabBar必须使用功能:
QTabBar * QTabWidget ::的TabBar()const的
返回当前QTabBar。
例子:
#include <QApplication>
#include <QLabel>
#include <QTabBar>
#include <QTabWidget>
#include <QLineEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTabWidget w;
w.addTab(new QLabel("widget 1"), "1");
w.addTab(new QLabel("widget 2"), "2");
QTabBar *tabBar = w.tabBar();
tabBar->setTabButton(0, QTabBar::LeftSide, new QLineEdit("LineEdit0"));
tabBar->setTabButton(0, QTabBar::RightSide, new QLabel("label0"));
tabBar->setTabButton(1, QTabBar::LeftSide, new QLineEdit("LineEdit1"));
tabBar->setTabButton(1, QTabBar::RightSide, new QLabel("label1"));
w.show();
return a.exec();
}
输出:
我不知道你所说的 “头” 的意思,但为['QTabBar :: setTabButton'(HTTP: //doc.qt.io/qt-5/qtabbar.html#setTabButton)你在找什么? –
@ G.M。我在说QTabWidget,setTabButton在QTabWidget中不可用。并且说标题,我的意思是顶部显示的标签名称,如, –
secretgenes
“setTabButton在QTabWidget中不可用”。不,但有['QTabWidget :: tabBar'](http://doc.qt.io/qt-5/qtabwidget.html#tabBar),因此您可以获得与'QTabWidget'关联的'QTabBar'。 –