我使用:setFixedSize(size());
来阻止窗口调整大小,但是当鼠标移到窗口边框上时,调整大小的箭头仍然会出现。
有没有更好的方法来禁用窗口大小调整,以避免在穿越边界时显示箭头?
发布于 2015-02-09 05:37:38
为此,Qt有一个名为Qt::MSWindowsFixedSizeDialogHint
的windowFlag。根据您的实际需求,您需要将此标志与Qt::Widget
、Qt::Window
或Qt::Dialog
结合使用。
void MyDialog::MyDialog()
{
setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint);
...
}
发布于 2016-12-13 03:10:33
如果您确切地知道所需的窗口大小,则使用一行代码:
this->setFixedSize(QSize(750, 400));
发布于 2013-05-22 15:13:04
尝试如下所示:
this->statusBar()->setSizeGripEnabled(false);
如果这不起作用,您需要做的就是检测哪个小部件正在激活QSizeGrip。你可以通过在你的应用程序上安装一个事件过滤器并尝试捕获QSizeGrip的mouseMoveEvent来实现这一点。然后调试其父窗口小部件。
下面是您可以使用的eventFilter函数的示例:
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;
}
你可能也会看到它的展示事件,这取决于你。
https://stackoverflow.com/questions/16673074
复制相似问题