Problem with QProgressDialog
-
I get some problems with QProgressDialog. I'm using qt 4.8.5.
- How to adjust the size of the dialog to fit its contents?
I test with code below:
QProgressDialog* dialog = new QProgressDialog("Message", "Close", 0, 10); dialog->setWindowTitle("Long Long Long Long Title"); dialog->setCancelButtonText("Long Long Long Click this button to cancel"); dialog->setWindowModality(Qt::ApplicationModal); dialog->adjustSize(); dialog->setValue(5);
The title and the cancel button text are cut. I called adjustSize(), but it didn't work.
2.How to disable the maximum button (fixed size) on Mac?
I'm using qt 4.8.5. On Windows I can set fixed size flag to a dialog withsetWindowFlags(windowFlags() | Qt::MSWindowsFixedSizeDialogHint)
Is there similar way to set fixed size dialog on Mac? I don't want to use setFixedSize() method to hard-code the dialog size. I want to disable the maximum button and make the dialog size fixed. - How to adjust the size of the dialog to fit its contents?
-
Hello,
Do you have a layout set for your dialog, what doesdialog()->layout()
return? If you intend on using it as a modal dialog, I think you should usedialog.exec()
.
I don't know whether there's a hint for mac, but as a last resort you could subclass the dialog and in a show event reimplementation call thesetFixedSize()
method. Disabling the button (there was some kind of a hint/attribute for that but I can't seem to find it now) doesn't necessarily mean that the dialog will be fixed size.Kind regards.
EDIT:
Aha, I found them:
Qt::WindowSystemMenuHint
,Qt::WindowMinimizeButtonHint
,Qt::WindowMaximizeButtonHint
,Qt::WindowMinMaxButtonsHint
and the like I believe are what you're looking for. -
Hello,
Do you have a layout set for your dialog, what doesdialog()->layout()
return? If you intend on using it as a modal dialog, I think you should usedialog.exec()
.
I don't know whether there's a hint for mac, but as a last resort you could subclass the dialog and in a show event reimplementation call thesetFixedSize()
method. Disabling the button (there was some kind of a hint/attribute for that but I can't seem to find it now) doesn't necessarily mean that the dialog will be fixed size.Kind regards.
EDIT:
Aha, I found them:
Qt::WindowSystemMenuHint
,Qt::WindowMinimizeButtonHint
,Qt::WindowMaximizeButtonHint
,Qt::WindowMinMaxButtonsHint
and the like I believe are what you're looking for. -
Thanks @kshegunov. These hints work on windows, but dont work on mac. And the QProgress Dialog class is provided by qt.
@ldl_0
Well, the hints are just that - a hint to the underlying window manager, so if it doesn't respect/support the hints you pass it there's little you can do. As for the other question, I did mention that you can subclass it as a last resort measure. If nothing works you could, of course, make your own form and initialize a generic QDialog from it, then connect the appropriate signals for the buttons and the like (maybe this is even better than inheriting the QProgressDialog). Also as a side note, if you're using a modal dialog, there's no real point in creating it in the heap.Kind regards.