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?
OriginalL'auteur thafritz | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Vous avez juste oublié de définir le modèle de votre QTreeView. Maintenant, l'arbre n'a pas de modèle de sorte qu'il ne voit jamais la mise à jour des données:
Aussi comme une suggestion, vous épargner un peu de dactylographie et d'utiliser le nouveau style de signal/slot connexions qui sont plus pythonic et de ne pas vous faire taper signatures:
OriginalL'auteur jdi
Je viens de tomber sur cette question et je suis vraiment heureux que j'ai fait. Il m'a amené à considérer dans l'utilisation de l'uic, le module, j'ai été en ignorant. Dans toutes les années que j'ai utilisé pyqt j'ai toujours généré une .py fichier à partir de la designer .l'interface utilisateur du fichier, puis importer le fichier généré en tant que module.
À l'aide de l'uic au lieu de charger directement les .fichier d'interface utilisateur permet d'économiser une étape et simplifie les choses un peu. C'est facile à faire.
Donc oui, en réponse à la question #2, il y a un moyen plus simple que d'appeler les trucs de l'interface utilisateur:
OriginalL'auteur Eric Myers