91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

qt tabbar怎樣設置標簽顏色

qt
小樊
87
2024-10-15 01:19:43
欄目: 編程語言

在Qt中,可以通過編程方式設置TabBar的標簽顏色。以下是一個示例代碼,展示了如何在Qt Widgets應用程序中設置TabBar的標簽顏色:

#include <QApplication>
#include <QTabWidget>
#include <QWidget>
#include <QStyleOptionTab>
#include <QPainter>

class CustomTabBar : public QTabBar {
public:
    CustomTabBar(QWidget *parent = nullptr) : QTabBar(parent) {}

protected:
    void paintEvent(QPaintEvent *event) override {
        QTabBar::paintEvent(event);

        for (int i = 0; i < count(); ++i) {
            QStyleOptionTab opt;
            opt.tabRect = tabRect(i);
            opt.text = tabText(i);
            opt.icon = tabIcon(i);
            opt.state = tabState(i);

            QPainter painter(this);
            style()->drawControl(QStyle::CE_TabBarTab, &opt, &painter, this);

            // 設置標簽顏色
            QColor tabColor = Qt::red; // 這里可以設置你想要的顏色
            painter.save();
            painter.setBrush(tabColor);
            painter.drawRect(tabRect(i));
            painter.restore();
        }
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    CustomTabBar tabBar;
    tabBar.addTab("Tab 1");
    tabBar.addTab("Tab 2");
    tabBar.addTab("Tab 3");

    QWidget widget1, widget2, widget3;
    tabBar.setTabWidget(&widget1);
    tabBar.addTab(&widget2);
    tabBar.addTab(&widget3);

    widget1.show();
    widget2.show();
    widget3.show();

    return app.exec();
}

在這個示例中,我們創建了一個名為CustomTabBar的自定義QTabBar類,并重寫了paintEvent()方法。在paintEvent()方法中,我們使用QPainter繪制了TabBar,并使用QStyle繪制了默認的Tab樣式。然后,我們使用QPainterfillRect()方法設置了每個標簽的顏色。

請注意,這個示例僅適用于Qt Widgets應用程序。如果你使用的是Qt Quick或其他Qt模塊,設置標簽顏色的方法可能會有所不同。

0
武隆县| 乌兰察布市| 江安县| 云梦县| 若尔盖县| 长白| 隆德县| 同心县| 道孚县| 金乡县| 绿春县| 临朐县| 会宁县| 盐城市| 湘潭市| 云南省| 岳普湖县| 盘山县| 枣庄市| 桂林市| 丹寨县| 三穗县| 宜川县| 抚顺市| 石嘴山市| 长白| 虞城县| 饶阳县| 阿合奇县| 大悟县| 秦皇岛市| 清水县| 普兰店市| 福泉市| 巴里| 阿图什市| 普格县| 阜阳市| 美姑县| 汉沽区| 宜城市|