如果应用程序的主窗口具有QStatusBar,并且它的宽度变得比主窗口的宽度更大(例如,在添加小部件期间),则该窗口会自动调整大小以适应状态栏。我想知道,在这种情况下,是否有办法防止窗口大小的变化?
提前感谢!
发布于 2014-03-10 19:38:23
我找到了摆脱这种状况的办法。我在状态栏中添加了一个QScrollArea,现在我将小部件添加到那个滚动区域,这样它们就不会影响主窗口的大小。
发布于 2014-03-08 19:45:19
要做到这一点,我需要编写一个小的雷伊大小调整阻止程序,如下所示:
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;
};它可以像这样使用:
void MainWindow::addToStatusBar()
{
ResizeBlocker doNotResizeHere(this);
ui->statusBar->addWidget(new QLabel("A Label"));
}我已经创建了一个演示,并将其上传到GitHub 这里。
发布于 2018-05-07 07:54:35
我也遇到了同样的问题,只需为我添加到状态栏的小部件设置一个固定大小就可以修复它。
https://stackoverflow.com/questions/22273084
复制相似问题