Bonsoir,

Il y a quelques temps je pensais que qt5 permettait de charger directement les fichiers ui produit par qtdesigner mais il ne semblait que non...

Mais après quelques recherches, il s’avère que c'est bien possible depuis qt et pyqt > 4.4.


Pour cela c'est assez simple :
1) Importer la fonction uic depuis le module PyQt4
2) Indiquer l'emplacement du fichier ui
Code : Sélectionner tout - Visualiser dans une fenêtre à part
file = "/home/hizoka/ui_Test.ui"
3) Charger le fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
widgets = uic.loadUi(file)
4) Afficher le tout
Apres quelques tests rapides :
- Les icônes systèmes n’apparaissent pas.

- Le contenu du fichier ressource fonctionne mais il faut charger le fichier dans le script python (ce qui était inutile car la conversion ui => py s'en chargeait).

- Les connexions internes fait par qtdesigner fonctionnent.

- Les connexions internes au fichier py fonctionne aussi.

ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
import os, sys
from PyQt4 import uic
from PyQt4.QtGui import *
from PyQt4.QtCore import *
 
import fichiers_rc
 
def AboutQt():
    """Fonction affichant la fenêtre à propos de Qt."""
    QMessageBox.aboutQt(widgets)
 
 
if __name__ == '__main__':
 
    app = QApplication(sys.argv)
 
    file = "/home/hizoka/ui_Test.ui"
 
    widgets = uic.loadUi(file)
    widgets.show()
 
    widgets.about_qt_open.activated.connect(AboutQt)
 
    app.exec_()
Cela nécessite de pousser un peu le fonctionnement mais c'est franchement sympa non ?


Donnez moi votre avis sur la chose :
est-ce plus simple ?
est-ce limitant ?
... ?