首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改QStatusbar小部件后面的行

修改QStatusbar小部件后面的行
EN

Stack Overflow用户
提问于 2022-04-16 20:45:06
回答 1查看 62关注 0票数 0

有没有一种方法可以修改(删除) QStatusbar中永久小部件后面的行?

我不知道这是否重要,但我就是这样把标签添加到状态栏中的:

代码语言:javascript
复制
wStyleTest::wStyleTest(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::wStyleTest)
{
    // ...

    ui->statusbar->addPermanentWidget(ui->lblPermWidget1);
    ui->statusbar->addPermanentWidget(ui->lblPermWidget2);

    // ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-17 09:52:40

子类QProxyStyle并重新实现drawPrimitive方法。在那里,检查QStyle::PE_FrameStatusBar元素并从它返回,而不是调用基方法。

代码语言:javascript
复制
#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的构造函数中:

代码语言:javascript
复制
QApplication::setStyle(new StyleFixes);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71897375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档