I used:
setFixedSize(size());
to stop the window from resizing, but the resize arrows still appear when the mouse is over the border of the window.
Is there a better way to disable window resizing to avoid showing the arrows when crossing the border?
Step 1: Navigate to Settings app > System > Multitasking. Step 2: Here, turn off the Snap windows option to stop Windows 10 from automatically resizing windows.
Below are the steps for resizing a window only using the keyboard. Press Alt + Spacebar to open the window's menu. If the window is maximized, arrow down to Restore and press Enter . Press Alt + Spacebar again to open the window menu, arrow down to Size, and press Enter .
Qt has a windowFlag called Qt::MSWindowsFixedSizeDialogHint
for that. Depending on what you exactly want, you want to combine this flag with Qt::Widget
, Qt::Window
or Qt::Dialog
.
void MyDialog::MyDialog()
{
setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint);
...
}
One-liner if you know exactly the required size of the window:
this->setFixedSize(QSize(750, 400));
Try something like this:
this->statusBar()->setSizeGripEnabled(false);
If this doesn't work, all you need to do is detect what widget is activating QSizeGrip. You can do this by installing an event filter on your app and try to catch the QSizeGrip's mouseMoveEvent. Then debug its parent widget.
Here's an example of the eventFilter function you could use:
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;
}
You could probably catch its show event as well, it's up to you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With