PyQt5 控制窗口

问题描述

enter image description here

在上图中,背景窗口是屏幕的主窗口。然后跟随一个从主窗口菜单打开的表单 在顶部你可以看到一个像这样的 QMessageBox

Box = QMessageBox()
            Box.setIcon(QMessageBox.Question)
            Box.setwindowTitle('Αποθήκευση αλλαγών')
            Box.setText('Θέλετε να αποθηκεύσετε τις αλλαγές σας;')
            Box.setStandardButtons(QMessageBox.Yes|QMessageBox.No|QMessageBox.Cancel)
            buttonY = Box.button(QMessageBox.Yes)
            buttonY.setText('Ναι')
            buttonN = Box.button(QMessageBox.No)
            buttonN.setText('Οχι')
            buttonC = Box.button(QMessageBox.Cancel)
            buttonC.setText('Ακύρωση')
            Box.exec_()
            if Box.clickedButton() == buttonY:
                self.save_and_close(True)
                self.main_self.manage_microphone_window_is_open = False
                event.accept()
            elif Box.clickedButton() == buttonN:
                self.main_self.manage_microphone_window_is_open = False
                event.accept()
            elif Box.clickedButton() == buttonC:
                event.ignore()

我希望在底部的 Windows(底部有窗口和时钟的开始菜单)只显示一个程序。

有什么想法吗?

解决方法

在 musicmante 的帮助下,我做了以下事情:

  1. 我将 Form Window 更改为 QDialog 并将 MainWindow 设置为父窗口
  2. 我将父级设置为框:box = QMessageBox(dlg)

请注意,当您将 QWidgets 从 Form 复制粘贴到新的 Dialog(在 QtDesigner 中)时,请注意在步骤 1 中,您可以更改窗口标题、窗口图标、窗口样式以及任何其他窗口设置。