Python – как отобразить окно сообщения в PyQt4: объяснение нескольких методов

Чтобы отобразить окно сообщения в PyQt4 с помощью Python, вы можете использовать несколько методов. Вот несколько подходов:

  1. Использование QMessageBox: это стандартный класс окна сообщений, предоставляемый PyQt4. Вы можете создать экземпляр QMessageBox, установить нужные свойства, такие как текст сообщения, значок и кнопки, а затем отобразить его с помощью метода exec_().
from PyQt4 import QtGui
# Create a message box
msg_box = QtGui.QMessageBox()
msg_box.setText("This is a message box.")
msg_box.setWindowTitle("Message Box")
msg_box.setIcon(QtGui.QMessageBox.Information)
# Add buttons
msg_box.addButton(QtGui.QMessageBox.Ok)
msg_box.addButton(QtGui.QMessageBox.Cancel)
# Display the message box
result = msg_box.exec_()
  1. Использование настраиваемого диалогового окна. Вы можете создать настраиваемое диалоговое окно и включить в него текст сообщения, значки и кнопки в соответствии с вашими требованиями. Такой подход обеспечивает большую гибкость с точки зрения настройки.
from PyQt4 import QtGui, QtCore
class CustomDialog(QtGui.QDialog):
    def __init__(self, parent=None):
        super(CustomDialog, self).__init__(parent)

        # Set properties
        self.setWindowTitle("Custom Dialog")
        self.setWindowIcon(QtGui.QIcon("icon.png"))

        # Create widgets
        self.label = QtGui.QLabel("This is a message box.", self)
        self.button_ok = QtGui.QPushButton("OK", self)
        self.button_cancel = QtGui.QPushButton("Cancel", self)

        # Set layout
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.button_ok)
        layout.addWidget(self.button_cancel)
        self.setLayout(layout)

        # Connect button signals
        self.button_ok.clicked.connect(self.accept)
        self.button_cancel.clicked.connect(self.reject)
# Create and display the custom dialog
dialog = CustomDialog()
result = dialog.exec_()
  1. Использование окна сообщения с родительским окном. Если вы хотите, чтобы окно сообщения было связано с родительским окном, вы можете передать родительское окно в качестве аргумента при создании экземпляра окна сообщения.
from PyQt4 import QtGui
# Create a main window
main_window = QtGui.QMainWindow()
# Create a message box with the main window as the parent
msg_box = QtGui.QMessageBox(main_window)
msg_box.setText("This is a message box.")
# Display the message box
result = msg_box.exec_()

Обратите внимание, что PyQt4 — это более старая версия PyQt, которая была заменена PyQt5 и PyQt6. Для новых проектов рекомендуется использовать последнюю версию.