2016-05-11 3 views
0

Я пытаюсь создать диалоговое окно «О программе» для своего приложения. Мое главное окно - тип «MainWindow», а окно «О программе» - это диалоговое окно, созданное с помощью QT Designer и преобразованное в «.py» файлы с pyuic4 -> gui_v1.py и about_v1.pyКак создать всплывающее окно (ссылку MainWindow с диалогом) в Qt Designer (Python)?

В моем основной файл моего приложения, я построил этот второй класс для о диалоге:

import gui_v1 
import about_v1 

class AboutDialog(QtGui.QDialog, about_v1.Ui_Dialog): 
    def __init__(self, parent=None): 
     super(AboutDialog, self).__init__(parent) 
     self.setupUi(self) 

Я добавил функцию open_about() на мой основной класс в главном файле, и связал эту функцию с кнопкой меню, отвечающей за открытие окна:

class MainDialog(QtGui.QMainWindow, gui_v1.Ui_MainWindow): 
    def __init__(self, parent=None): 
     super(MainDialog, self).__init__(parent) 
     self.setupUi(self) 
     QtCore.pyqtRemoveInputHook() 

     [...] 

     def open_about(self): 
      app = QtGui.QApplication(sys.argv) 
      form = AboutDialog() 
      form.show() 
      app.exec_() 

Главное приложение работает от этого последнего функция:

if __name__ == '__main__': 
    def main(): 
     app=QtGui.QApplication(sys.argv) 
     form=MainDialog() 
     form.show() 
     app.exec_() 

    main() 

При нажатии на пункт меню «О» ничего не происходит. Я предполагаю, что проблема заключается в функции open_about(), но я не могу найти, что это такое. Спасибо за вашу помощь!

ответ

0

QMessageBox имеет встроенную функциональность коробки. Посмотрите на

QMessageBox.about (QWidget parent, QString caption, QString text) 

Таким образом, вы могли бы назвать это что-то вроде:

QMessageBox.about (self, "About whatever....", "The text you want to display in the box") 

Вы можете посмотреть на QMessageBox документации здесь:

http://pyqt.sourceforge.net/Docs/PyQt4/qmessagebox.html