首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QStatusBar调整大小时防止窗口大小调整

在QStatusBar调整大小时防止窗口大小调整
EN

Stack Overflow用户
提问于 2014-03-08 18:10:20
回答 3查看 678关注 0票数 3

如果应用程序的主窗口具有QStatusBar,并且它的宽度变得比主窗口的宽度更大(例如,在添加小部件期间),则该窗口会自动调整大小以适应状态栏。我想知道,在这种情况下,是否有办法防止窗口大小的变化?

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-10 19:38:23

我找到了摆脱这种状况的办法。我在状态栏中添加了一个QScrollArea,现在我将小部件添加到那个滚动区域,这样它们就不会影响主窗口的大小。

票数 3
EN

Stack Overflow用户

发布于 2014-03-08 19:45:19

要做到这一点,我需要编写一个小的雷伊大小调整阻止程序,如下所示:

代码语言:javascript
复制
class ResizeBlocker
{ 
public:
    ResizeBlocker(QWidget *widget)
        : m_widget(widget)
    {
        m_widget->setFixedSize(m_widget->size());
    }

    ~ResizeBlocker()
    {
        m_widget->setFixedSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
    }

private:
    QWidget *m_widget;
};

它可以像这样使用:

代码语言:javascript
复制
void MainWindow::addToStatusBar()
{
    ResizeBlocker doNotResizeHere(this);
    ui->statusBar->addWidget(new QLabel("A Label"));
}

我已经创建了一个演示,并将其上传到GitHub 这里

票数 0
EN

Stack Overflow用户

发布于 2018-05-07 07:54:35

我也遇到了同样的问题,只需为我添加到状态栏的小部件设置一个固定大小就可以修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22273084

复制
相关文章

相似问题

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