QTabWidget改变选项卡的位置

QTabWidget选项卡的位置默认是上面(North)。如下图
在这里插入图片描述
当我们想改变选项卡的为外观和位置是可以调用一下两个函数 setTabShape() 和 setTabPosition()。

选项卡外观函数:
QTabWidget::setTabShape(QTabWidget::Rounded); //默认(圆形)
QTabWidget::setTabShape(QTabWidget::Triangular); //三角形

选项卡位置函数:
QTabWidget::setTabPosition(QTabWidget::North); //默认为上面
QTabWidget::setTabPosition(QTabWidget::South); //下面(默认为上面)
QTabWidget::setTabPosition(QTabWidget::West); //左侧(默认为上面)
QTabWidget::setTabPosition(QTabWidget::East); //右侧(默认为上面)

运行效果:
选项卡在下面
选项卡在左边
选项卡在右边
代码:

#include "qttests.h"
#include <QtWidgets/QApplication>
#include <QtWidgets/QtWidgets>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QWidget w;

	QWidget *pw = new QWidget();  
	QWidget *pw1 = new QWidget();
	QWidget *pw2 = new QWidget();

	QRadioButton *pr,*pr1,*pr2,*pr3,*pr4,*pr5;
	
	pr = new QRadioButton("AAA"); 
	pr1 = new QRadioButton("BBB");
	pr2 = new QRadioButton("CCC"); 
	pr3 = new QRadioButton("DDD");
	pr4 = new QRadioButton("EEE"); 
	pr5 = new QRadioButton("FFF");

	QVBoxLayout *pv = new QVBoxLayout;
	QVBoxLayout *pv1 = new QVBoxLayout;
	QVBoxLayout *pv2 = new QVBoxLayout;

	pv->addWidget(pr);
	pv->addWidget(pr1);
	pw->setLayout(pv);

	pv1->addWidget(pr2);
	pv1->addWidget(pr3);
	pw1->setLayout(pv1);

	pv2->addWidget(pr4);
	pv2->addWidget(pr5);
	pw2->setLayout(pv2);

	QtTests *pt = new QtTests(&w);
	pt->addTab(pw, "AA");
	pt->addTab(pw1, "BB");
	pt->addTab(pw2, "CC");
	
	pt->move(22, 55);
	pt->resize(222, 222);

	//pt->setTabPosition(QTabWidget::South);		//下面(默认为上面)
	//pt->setTabPosition(QTabWidget::West);		//左侧(默认为上面)
	pt->setTabPosition(QTabWidget::East);		//右侧(默认为上面)

	pt->setTabShape(QTabWidget::Triangular);	//表头为三角形外观(默认为圆形)
	//pt->setTabShape(QTabWidget::Rounded);

	cout << pt->indexOf(pw1) << endl;
	cout << pt->indexOf(pr) << endl;

	w.resize(300, 300);
	w.show();

	return a.exec();
}

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值