Puisque PySide est un dérivé de Qt, un outil appelé Qt Designer est utile lors du développement d'interfaces graphiques. Il s'agit d'un outil appelé RAD qui vous permet de développer visuellement des interfaces graphiques. En conséquence, un "fichier .ui" est créé, mais il y a une légère habitude de le gérer depuis le code source de PySide (fichier .py) (différent de Qt et PyQt), donc créez un article sous forme de mémorandum. Je le ferai.
Vous pouvez utiliser la partie intégrée à QtCreater, mais si vous souhaitez utiliser QtDesigner seul, ce sera dans le répertoire suivant. J'omettrai comment utiliser QtDesigner car c'est plus familier que l'apprentissage et il existe de nombreuses explications détaillées de la zone Qt.
C:\Python\Lib\site-packages\PySide\designer.exe
La forme la plus simple est la suivante. On suppose qu'un fichier de description d'interface graphique appelé dialog.ui a été créé. Le processus consiste à lire le fichier .ui avec QUiLoader et à l'afficher avec la fonction show ().
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader
class Dialog(QDialog):
def __init__(self, parent = None):
super(Dialog, self).__init__(parent)
#Avec QUiLoader.Lire le fichier ui
self.dialogUi = QUiLoader().load("./dialog.ui")
if __name__ == '__main__':
#Créer une application Qt
app = QApplication(sys.argv)
#Créer et afficher un formulaire
mainWin = Dialog()
mainWin.dialogUi.show()
#Démarrez la boucle principale de Qt
sys.exit(app.exec_())
Spécifiez le nom de l'objet modifiable dans le coin supérieur droit de QtDesigner.
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader
class Dialog(QDialog):
def __init__(self, parent = None):
super(Dialog, self).__init__(parent)
self.dialogUi = QUiLoader().load("./dialog.ui")
#Définir le texte de l'étiquette
self.dialogUi.label.setLabel("Hello!")
#Changer le texte de l'étiquette en appuyant sur un bouton
self.dialogUi.pushButton.clicked.connect(lambda: self.dialogUi.label.setLabel("World!"))
if __name__ == '__main__':
#Créer une application Qt
app = QApplication(sys.argv)
#Créer et afficher un formulaire
mainWin = Dialog()
mainWin.dialogUi.show()
#Démarrez la boucle principale de Qt
sys.exit(app.exec_())
C'est comme suit.
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader
class Dialog(QDialog):
def __init__(self, parent = None):
super(Dialog, self).__init__(parent)
self.dialogUi = QUiLoader().load("./dialog.ui")
self.dialogUi.label.setText("Hello!")
self.dialogUi.pushButton.clicked.connect(lambda: self.dialogUi.label.setText("World!"))
#Charger le fichier d'interface utilisateur avec QUiLoader
self.widgetUi = QUiLoader().load("./widget.ui")
#Ajouter un widget à la présentation principale de la boîte de dialogue
self.dialogUi.verticalLayout.addWidget(self.widgetUi)
if __name__ == '__main__':
#Créer une application Qt
app = QApplication(sys.argv)
#Créer et afficher un formulaire
mainWin = Dialog()
mainWin.dialogUi.show()
#Démarrez la boucle principale de Qt
sys.exit(app.exec_())
C'est tout pour gérer les fichiers .ui dans PySide.
En fait, il y a un problème avec la configuration de l'interface graphique à l'aide du fichier .ui dans PySide.
Ajoutez self.show ()
dans la fonction \ _ \ _ init \ _ \ _ (), ou si \ _ \ _ nom \ _ \ _ == '\ _ \ _ main \ _ \ _': boucle principale Si vous ajoutez mainWin.show ()
à l'intérieur, une fenêtre propre sera affichée séparément de l'interface graphique créée par QtDesigner. Il s'agit de l'interface graphique de la classe Dialog elle-même, qui a été créée à l'origine en héritant de la classe QDialog, et à l'heure actuelle (PySide 1.2.2), il ne semble y avoir aucun moyen d'appliquer le fichier .ui ici.
Il semble que PySide2 soit au milieu du développement pour prendre en charge Python3 et Qt5, donc j'espère qu'il sera également amélioré.
Recommended Posts