Donc, si je vais dans QtDesigner et que je construis une interface utilisateur, elle sera enregistrée en tant que fichier .ui. Comment puis-je faire cela en tant que fichier python ou l'utiliser en python?
Une autre façon d'utiliser .ui dans votre code est la suivante:
from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
...
#somewhere in constructor:
uic.loadUi('MyWidget.ui', self)
les deux approches sont bonnes. N'oubliez pas que si vous utilisez des fichiers de ressources Qt (extrêmement utiles) pour les icônes, vous devez également les compiler:
pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc
Notez que lorsque uic
compile l'interface, il ajoute 'import images_rc' à la fin du fichier .py. Vous devez donc compiler les ressources dans le fichier portant ce nom ou le renommer en code généré.
Combinaison des réponses de Max et de la liste de diffusion de Shriramana Sharma , j'ai construit un petit exemple de travail pour charger un fichier mywindow.ui
contenant une QMainWindow
(choisissez donc simplement de créer une fenêtre principale dans la boîte de dialogue File-New
de Qt Designer).
C'est le code qui le charge:
import sys
from PyQt4 import QtGui, uic
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mywindow.ui', self)
self.show()
if __== '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
Vous devez générer un fichier python à partir de votre fichier d'interface utilisateur avec l'outil pyuic (site-packages\pyqt4\bin)
pyuic form1.ui > form1.py
avec pyqt4
pyuic4.bat form1.ui > form1.py
Ensuite, vous pouvez importer le formulaire1 dans votre script.
J'ai trouvé cet article très utile.
http://talk.maemo.org/archive/index.php/t-43663.html
Je vais décrire brièvement les actions pour créer et modifier le fichier .ui en fichier .py, tiré de cet article.
Le fichier est créé et enregistré, nous allons maintenant générer le code Python à l’aide de pyuic!
J'espère que ça aide quelqu'un.
Vous pouvez également utiliser uic
dans PyQt5 avec le code suivant.
from PyQt5 import uic, QtWidgets
import sys
class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('SomeUi.ui', self)
self.show()
if __== '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
sys.exit(app.exec_())
Vous pouvez convertir vos fichiers .ui en un fichier python exécutable à l’aide de la commande ci-dessous.
pyuic4 -x form1.ui > form1.py
Maintenant, vous pouvez immédiatement exécuter le fichier python en tant que
python3(whatever version) form1.py
Vous pouvez importer ce fichier et vous pouvez l'utiliser.
Selon moi, la méthode la plus propre consiste à exporter d'abord vers .py, comme indiqué ci-dessus:
pyuic4 foo.ui > foo.py
Et utilisez-le ensuite dans votre code (par exemple, main.py
), comme:
from foo import Ui_MyWindow
class MyWindow(QtGui.QDialog):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MyWindow()
self.ui.setupUi(self)
# go on setting up your handlers like:
# self.ui.okButton.clicked.connect(function_name)
# etc...
def main():
app = QtGui.QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())
if __== "__main__":
main()
De cette façon, les personnes qui n'utilisent pas qt-designer ne peuvent pas lire le code, mais conserve également votre code de fonctionnalité en dehors de foo.py
qui pourrait être remplacé par le concepteur. Vous venez de référencer les classes ui
à MyWindow
, comme indiqué ci-dessus.
vous pouvez compiler les fichiers d'interface utilisateur comme celui-ci
pyuic4 -x helloworld.ui -o helloworld.py
Afin de compiler des fichiers .ui en fichiers .py, j'ai:
python pyuic.py form1.ui > form1.py
Att.
dans pyqt5 pour convertir un fichier ui en fichier .py
pyuic5.exe youruifile.ui -o outputpyfile.py -x
Utilisation d'Anaconda3 (septembre 2018) et de QT Designer 5.9.5 . Dans QT Designer, enregistrez votre fichier sous ui . Ouvrez l'invite Anaconda. Recherchez votre fichier: cd C: .... (copiez/collez le chemin d'accès de votre fichier) . Puis écrivez: pyuic5 -x helloworld.ui -o helloworld.py (helloworld = nom de votre fichier). Entrez . Lancez Spyder. Ouvrez votre fichier .py.