2015-06-17 5 views
0

Может ли кто-нибудь сказать мне, почему этот код не работает? Test4 класс мой конвертированы простой пользовательский интерфейс:Показать диалоговое окно

import sys 
import Test4 
from PyQt4 import QtGui, QtCore 

class UiViewer(QtGui.QApplication, Test4.Ui_Dialog): 

    def __init__(self, parent=None): 
     return super(UiViewer, self).__init__(parent) 
     self.setupUi(self) 

    def main(self): 
     self.show() 

if __name__ == '__main__': 

    app = QtGui.QApplication(sys.argv) 

    uiViewer = UiViewer() 
    uiViewer.main() 
    app.exec_() 
+0

Каковы ваши ошибки? У вас есть трассировка для публикации? –

ответ

0

первую очередь вам нужно использовать

if __name__ == '__main__' 

не

if name == 'main': 

, а также добавление сообщения об ошибке и описывающая поведение приложение, когда вы его запускаете, поможет проследить проблему. от вашего вопроса, может быть любое количество проблем.

+0

Явная проблема '__name__ == '__main __'' была вызвана неправильным форматированием кода. – ekhumoro

0

Ваш UiViewer класс должен наследовать от того же класса, как виджет верхнего уровня в Qt Designer (предположительно QDialog, в вашем случае, но это также может быть QMainWindow или QWidget):

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

И обратите внимание, что вы не должны ставить return перед вызовом super, иначе функция __init__ выйдет в этой точке, то есть остальная часть его кода не будет выполнена (в частности, setupUi не будет вызываться).

+0

Благодаря вам ... вверх и вниз – steph

Смежные вопросы