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