Qt重新设计TabBar

Qt redesign TabBar

本文关键字:TabBar Qt      更新时间:2023-10-16

所以我有我的Qt项目(它的代码编辑器)我想重新设计标签栏。我使用了以下代码:

#ifndef TABS
#define TABS
#include <QTabBar>
class Tabs : public QTabBar
{
    Q_OBJECT
public:
    Tabs(QWidget *parent = 0);
protected:
    void paintEvent(QPaintEvent *);
};
#endif // TABS

. cpp

#include "tabs.h"
#include <QDebug>
Tabs::Tabs(QWidget *parent)
    : QTabBar(parent)
{
    qDebug() << parent->metaObject()->className();
}
void Tabs::paintEvent(QPaintEvent *)
{
    for(int index = 0; index < count(); index++ )
    {
        qDebug() << index;
    }
}

(qDebug用于测试)

我做得好还是代码有问题?请帮助。

如果这是你所有的代码,那么我认为你不能看到你的自定义选项卡小部件,因为你覆盖了paintEvent( ... )函数,但没有做任何事情:

void Tabs::paintEvent( QPaintEvent* aEvent )
{
    for(int index = 0; index < count(); ++index )
    {
        qDebug() << index;
    }
}

你应该调用基类的实现,或者在其中做一些事情来产生一些可见的结果。