请告诉我为什么滚动按钮宽度较小的 QTabBar 滚动按钮之间存在距离,如何解决?
在这种情况下,我在样式表中有以下内容:
QTabBar::scroller {
width: 6px;
}
同时,整个悖论是,在一个纯粹的例子中,按钮之间没有距离,我无法理解在我的例子中这怎么会出错。甚至这种缩进的类型也不清楚:它既不是小部件也不是布局,不清楚它是什么类型的对象。
这是因为 Qt 版本过时。
尝试这个?QTabBar 滚动按钮之间的距离可以使用QProxyStyle::pixelMetric
#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();
}