Skip to content

DialogMixin

Base classes

Name Children Inherits
WidgetMixin
prettyqt.widgets.widget

Subclasses

Class Module Description
Dialog prettyqt.widgets.dialog
MessageBox prettyqt.widgets.messagebox
ErrorMessage prettyqt.widgets.errormessage
ProgressDialog prettyqt.widgets.progressdialog
FontDialog prettyqt.widgets.fontdialog
FileDialog prettyqt.widgets.filedialog
ColorDialog prettyqt.widgets.colordialog
InputDialog prettyqt.widgets.inputdialog
WizardMixin prettyqt.widgets.wizard
AbstractPrintDialogMixin prettyqt.printsupport.abstractprintdialog
PageSetupDialog prettyqt.printsupport.pagesetupdialog
PrintPreviewDialog prettyqt.printsupport.printpreviewdialog

⋔ Inheritance diagram

graph TD
  1473296195376["widgets.DialogMixin"]
  1473293688240["widgets.WidgetMixin"]
  1473299815024["core.ObjectMixin"]
  140713234304496["builtins.object"]
  1473245548480["gui.PaintDeviceMixin"]
  1473293688240 --> 1473296195376
  1473299815024 --> 1473293688240
  140713234304496 --> 1473299815024
  1473245548480 --> 1473293688240
  140713234304496 --> 1473245548480

🛈 DocStrings

Bases: WidgetMixin

Source code in prettyqt\widgets\dialog.py
class DialogMixin(widgets.WidgetMixin):
    def __init__(
        self,
        *args,
        delete_on_close: bool = False,
        **kwargs,
    ):
        super().__init__(*args, **kwargs)
        if delete_on_close:
            self.delete_on_close()

    def keyPressEvent(self, e):
        match e.key():
            case constants.Key.Key_Escape:
                self.close()
            case constants.Key.Key_F11 if self.isMaximized():
                self.showNormal()
            case constants.Key.Key_F11:
                self.showMaximized()
            case _:
                super().keyPressEvent(e)

    def delete_on_close(self):
        self.setAttribute(constants.WidgetAttribute.WA_DeleteOnClose)

    def add_buttonbox(self) -> widgets.DialogButtonBox:
        button_box = widgets.DialogButtonBox.create(ok=self.accept, cancel=self.reject)
        self.box.add(button_box)
        return button_box

    def show_blocking(self) -> bool:
        self.show()
        return bool(self.exec())

    def is_accepted(self) -> bool:
        return self.result() == widgets.QDialog.DialogCode.Accepted

    def main_loop(self) -> int:
        return self.exec()