exemple minimal qtreeview pour pyqt et le qt designer

Je cherche à obtenir un exemple minimal pour une application conçue par le qt designer avec pyqt impliquant un QTreeView de travail

1) je peux démarrer l'application de cette façon, mais si j'appuie sur le butten, pas d'entrée dans le TreeView widget est affiché, je n'ai pas de message d'erreur, et la mise en page a l'air bien, est-il une sorte de méthode de mise à jour?

si vous répondez, s'il vous plaît être spécifique, comme je suis encore un débutant avec qt et une grande partie de la documentation est écrite en c++ exemples, et je n'ai que peu d'expérience avec la base de c et python

from PyQt4 import uic, QtGui, QtCore


(Ui_MainWindow, QMainWindow) = uic.loadUiType('main_window.ui')


class MainWindow(QtGui.QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.model = QtGui.QStandardItemModel()
        self.connect(self.ui.pushButton_NeuesMoebel, QtCore.SIGNAL('clicked()'), self.add_item)

    def add_item(self):
        t = self.ui.lineEdit_Moebel.text()
        if len(t) > 0: 
            item = QtGui.QStandardItem(t)
            self.model.appendRow(item)
            self.ui.lineEdit_Moebel.clear()
        else:
            self.ui.statusBar.showMessage('error: no text in Moebel')


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

2) de plus, est-il une manière plus propre d'utiliser directement l' *.fichier d'interface d'utilisateur de ce, pour trier directement de la sous-classe MainWindow de ce fichier? les trucs de l'interface utilisateur semble un peu brouillon

3) par exemple, il serait plus agréable d'avoir la add_item méthode dans une sous-classe de la fenêtre créée par l' *.fichier d'interface utilisateur, sommes-nous censés utiliser l'étape intermédiaire de la traduction de l' *.fichier d'interface d'utilisateur pour une *.py fichier?

Les Questions 2 et 3 doivent être séparés pour une nouvelle question. Mais je suis sûr que ceci c'est votre réponse. Plus précisément le loadUi fonction.

OriginalL'auteur thafritz | 2012-07-24