QT -- 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();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM