在开发中,QTabWidget控件经常出现在项目或软件中,有时为了美观兼顾操作便利,需要把按钮或其他控件添加到QTabWidget控件的Tab页水平位置。

实现思路:
查看帮助文档,发现该类有个方法void setCornerWidget()可以实现所要效果。
使用void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)函数可以将小部件放置在QTabWidget的角落位置。

示例:
下面是一个使用setCornerWidget()函数在QTabWidget的左上角和右上角添加按钮的示例代码:

#include <QApplication>
#include <QTabWidget>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
	// 声明对象
    QTabWidget tabWidget;
	// 添加Tab页
    QWidget *tab1 = new QWidget();
    QWidget *tab2 = new QWidget();

    tabWidget.addTab(tab1, "Tab 1");
    tabWidget.addTab(tab2, "Tab 2");
    
    // 在右上角添加按钮
    QPushButton *button = new QPushButton("topR", &tabWidget);
    tabWidget.setCornerWidget(button, Qt::TopRightCorner);
	// 在左上角添加按钮
    QPushButton *button1 = new QPushButton("topL", &tabWidget);
    tabWidget.setCornerWidget(button1, Qt::TopLeftCorner);

    tabWidget.show();

    return a.exec();
}

效果:

【Qt】QTabWidget如何添加控件到Tab页水平位置_控件


在此基础上,绑定信号和槽,实现其自定义功能。