修改 QStatusbar 小部件后面的行
Modify line behind QStatusbar widgets
有没有办法修改(删除)QStatusbar 中永久小部件后面的行?
我不知道这是否重要,但这就是我将标签添加到状态栏的方式:
wStyleTest::wStyleTest(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::wStyleTest)
{
// ...
ui->statusbar->addPermanentWidget(ui->lblPermWidget1);
ui->statusbar->addPermanentWidget(ui->lblPermWidget2);
// ...
子类 QProxyStyle
并重新实现 drawPrimitive
方法。在那里,检查 QStyle::PE_FrameStatusBar
元素并从中检查 return 而不是调用基本方法。
#include <QProxyStyle>
#include <QStyleOption>
class StyleFixes : public QProxyStyle
{
public:
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
if (element == QStyle::PE_FrameStatusBar)
return;
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
};
在您的 main.cpp 或 MainWindow 的构造函数中将其应用于您的应用程序:
QApplication::setStyle(new StyleFixes);
有没有办法修改(删除)QStatusbar 中永久小部件后面的行?
我不知道这是否重要,但这就是我将标签添加到状态栏的方式:
wStyleTest::wStyleTest(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::wStyleTest)
{
// ...
ui->statusbar->addPermanentWidget(ui->lblPermWidget1);
ui->statusbar->addPermanentWidget(ui->lblPermWidget2);
// ...
子类 QProxyStyle
并重新实现 drawPrimitive
方法。在那里,检查 QStyle::PE_FrameStatusBar
元素并从中检查 return 而不是调用基本方法。
#include <QProxyStyle>
#include <QStyleOption>
class StyleFixes : public QProxyStyle
{
public:
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
{
if (element == QStyle::PE_FrameStatusBar)
return;
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
};
在您的 main.cpp 或 MainWindow 的构造函数中将其应用于您的应用程序:
QApplication::setStyle(new StyleFixes);