如何删除 QTabBar 滚动按钮之间的距离?

How to remove the distance between the QTabBar scroller buttons?

请告诉我为什么 QTabBar 滚动按钮之间有一个小宽度的滚动按钮,如何解决这个问题?

在这种情况下,我在样式 sheet 中有以下内容:

QTabBar::scroller {
    width: 6px;
}

同时,整个悖论是,在一个纯粹的例子中,按钮和按钮之间没有距离 我无法理解在我的示例中这怎么会出错。 连这个缩进的类型都不清楚:既不是widget也不是布局,不清楚是什么对象。

这是因为 Qt 版本过时。

试试这个?可以使用 QProxyStyle::pixelMetric

设置 QTabBar 滚动按钮之间的距离
#include "QtWidgetsApplication1.h"
#include <QtWidgets/QApplication>
#include<string>
#include<sstream>
#include<fstream>
#include<iomanip>
#include<QElapsedTimer>
#include<QThread>
#include<QTimer>
#include<QSerialPort>
#include<QTextStream>
#include<QTreeWidget>
#include<QTreeWidgetItem>
#include<QQuickView>
#include<QQmlEngine>
#include<QQmlContext>
#include<QTimer>
#include<iostream>
using namespace std;
#include<QTabBar>
#include <QProxyStyle>

class MyProxyStyle : public QProxyStyle
{
public:
    int pixelMetric(QStyle::PixelMetric metric, const QStyleOption* option = nullptr, const QWidget* widget = nullptr) const override
    {
        if (metric == QStyle::PM_TabBar_ScrollButtonOverlap)
        {
            return -50;
        }
        return QProxyStyle::pixelMetric(metric, option, widget);
    }
};
int main(int argc,char*argv[]) {
    QApplication a(argc, argv);
    a.setStyle(new MyProxyStyle);
    QTabBar bar;
    bar.setMaximumWidth(300);
    bar.setStyleSheet("QTabBar::scroller { width: 100px;}");
    bar.addTab("one");
    bar.addTab("two");
    bar.addTab("threee");
    bar.addTab("aaaaaaaa");
    bar.addTab("bbbbbbbbbbbbb");
    bar.addTab("cccccccccccc");
    bar.addTab("dddd");
    bar.show();
    return a.exec();
}