Пример кода
from PyQt4 import QtGui, QtCore import sys class mywindow(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) # определяем тип окна self.button = QtGui.QPushButton("Открыть модальное окно") # Задаём имя кнопки self.button.setStyleSheet("background-color: #ff0ff0;") # Задаём цвет кнопка self.button.setAutoFillBackground(True) # Задаём Автоматическое обновление палитры self.button.setToolTip("Это всплывающая подсказка для кнопки") self.button.setWhatsThis("Это справка для кнопки") self.button.setCursor(QtGui.QCursor(QtGui.QPixmap("cursor.png"), 10, 10)) vbox = QtGui.QVBoxLayout() # Задаем метод распределения виджеа в окне vbox.addWidget(self.button) # Добавляем виджеты в метод self.setLayout(vbox) # Присваеваем метод распределения к окну self.connect(self.button, QtCore.SIGNAL("clicked()"), self.show_modal_window) # Задаем обработчик нажатия кнопки #-------------------------------------------------- def show_modal_window(self): window = QtGui.QWidget(window1, QtCore.Qt.Dialog) # привязываем модальное к окн родителя window.setWindowModality(QtCore.Qt.WindowModal) # ApplicationModal блокирует все окна #window.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.CustomizeWindowHint) # задаём пораметры типа окна print(window.windowType() == QtCore.Qt.Dialog) # узнаём тип окна window.setWindowTitle("Модальное окно") # задаём Заголовок окна window.resize(300, 50) # задаём размер окна window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) window.show() # отображаем окно #--------------------------------------------------- def closeEvent(self, QMesBox): result = QtGui.QMessageBox.question(self, "Закрытие окна", "Закрыть окно?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if result == QtGui.QMessageBox.Yes: print (QtGui.QMessageBox.Yes) QMesBox.accept() QtGui.QWidget.closeEvent(self, QMesBox) else: QMesBox.ignore() #------------------------------------------------------ if __name__== "__main__": app = QtGui.QApplication(sys.argv) # привязываем к переменной значение командной сроки window1 = mywindow() window1.setWindowTitle("Обычное окно") # задаём Заголовок окна window1.resize(300, 100) # задаём размер окна window1.setWindowIcon(QtGui.QIcon("Win.ico")) # Иконка для окна window1.setToolTip("Это всплывающая подсказка для окна") window1.setWhatsThis("Это справка для окна") pal = window1.palette() # задаем переменню для политры окна pal.setColor(QtGui.QPalette.Normal, QtGui.QPalette.Window, QtGui.QColor("#008800")) # ЦВЕТ ОКНА Активное состояние окна pal.setColor(QtGui.QPalette.Inactive, QtGui.QPalette.Window, QtGui.QColor("#ff0000")) # ЦВЕТ ОКНА Не активное состояние окна window1.setPalette(pal) # Применяем цвета window1.show() # Показать окно sys.exit(app.exec_()) # запускаем цикл