首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当鼠标悬停在边框上时,如何完全禁止调整窗口大小?

当鼠标悬停在边框上时,如何完全禁止调整窗口大小?
EN

Stack Overflow用户
提问于 2013-05-21 22:53:30
回答 13查看 71.5K关注 0票数 53

我使用:setFixedSize(size());来阻止窗口调整大小,但是当鼠标移到窗口边框上时,调整大小的箭头仍然会出现。

有没有更好的方法来禁用窗口大小调整,以避免在穿越边界时显示箭头?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-02-09 05:37:38

为此,Qt有一个名为Qt::MSWindowsFixedSizeDialogHint的windowFlag。根据您的实际需求,您需要将此标志与Qt::WidgetQt::WindowQt::Dialog结合使用。

代码语言:javascript
复制
void MyDialog::MyDialog()
{
  setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint);

  ...
}
票数 53
EN

Stack Overflow用户

发布于 2016-12-13 03:10:33

如果您确切地知道所需的窗口大小,则使用一行代码:

代码语言:javascript
复制
this->setFixedSize(QSize(750, 400));
票数 21
EN

Stack Overflow用户

发布于 2013-05-22 15:13:04

尝试如下所示:

代码语言:javascript
复制
this->statusBar()->setSizeGripEnabled(false);

如果这不起作用,您需要做的就是检测哪个小部件正在激活QSizeGrip。你可以通过在你的应用程序上安装一个事件过滤器并尝试捕获QSizeGrip的mouseMoveEvent来实现这一点。然后调试其父窗口小部件。

下面是您可以使用的eventFilter函数的示例:

代码语言:javascript
复制
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if(event->type() == QEvent::MouseMove)
    {
        QSizeGrip *sg = qobject_cast<QSizeGrip*>(obj);
        if(sg)
            qDebug() << sg->parentWidget();
    }
    return false;
}

你可能也会看到它的展示事件,这取决于你。

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

https://stackoverflow.com/questions/16673074

复制
相关文章

相似问题

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