首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用QSizeGrip for QMainWindow

禁用QSizeGrip for QMainWindow
EN

Stack Overflow用户
提问于 2018-05-01 03:21:18
回答 1查看 1.2K关注 0票数 0

在设置主窗口的固定宽度后,我一直试图禁用调整大小的抓地力。我在Qt表单中看到,将statusBar()->setSizeGripEnabled()设置为false将禁用调整大小的抓地力,但没有运气。我是在Qt5上运行这个的。

我知道删除框架会消除这个问题,但这是一个更大的问题(创建拖动窗口的方法,添加按钮关闭等等)。到目前为止,这是我的main方法中的内容:

代码语言:javascript
复制
#if defined(Q_OS_WIN)
   QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication a(argc, argv);
Compressor w;
w.statusBar()->setSizeGripEnabled( false );
w.setFixedSize(QSize(360,450));
w.setGeometry(
            QStyle::alignedRect(
                Qt::LeftToRight,
                Qt::AlignCenter,
                w.size(),
                a.desktop()->availableGeometry()
                )
            );
w.show();

setGeometry在启动时将窗口设置在屏幕中央,并将其固定为大小。我不知道问题出在哪里。有办法解决这个问题吗?

更新

设置w.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);无效。试着把这两种方法都修复到Fixed上,没有任何运气。

更新2

我甚至删除了状态栏,但还是没有运气。

更新3

示例:

在Windows 10上使用QT5.10.1版本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 04:30:34

Windows似乎对成为跨平台友好操作系统有点固执。解决问题的方法是添加一个窗口标志。守则:

进入你的main.cpp

代码语言:javascript
复制
// Disable resize arrow.
#if defined(Q_OS_WIN)
    w.setWindowFlags(w.windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
#endif

完整代码:

代码语言:javascript
复制
#if defined(Q_OS_WIN)
   QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication a(argc, argv);
Compressor w;

// Disable resize arrow.
#if defined(Q_OS_WIN)
    w.setWindowFlags(w.windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
#endif

w.setFixedSize(QSize(360,450));
w.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
w.setGeometry(
            QStyle::alignedRect(
                Qt::LeftToRight,
                Qt::AlignCenter,
                w.size(),
                a.desktop()->availableGeometry()
                )
            );
w.show();

您还可以将它添加到MainWindow.cpp文件中,如下所示:

代码语言:javascript
复制
this->setWindowFlags(this->windowFlags() | Qt::MSWindowsFixedSizeDialogHint);

有关更多信息,请参见http://doc.qt.io/qt-5/qt.html#WindowType-enum

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

https://stackoverflow.com/questions/50110952

复制
相关文章

相似问题

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