Comment changer la .qml extension à un .l'interface utilisateur de l'utiliser dans pyqt5 application

0

La question

J'ai créer le design de mon application avec qt designer , et de transformer chaque fenêtre d'un fichier python à l'aide de la commande pyuic5 exemple.ui-o example.py en mesure d'obtenir un Ui_Form de la classe et de l'appeler dans mon programme. De sorte que chaque chose est à travailler, mais maintenant nous avons changé notre conception, et nous obtenons un fichiers qml. Ma question est comment de travailler avec ce qml fichiers sans modifier les concepts de l'application. Est-il une méthode comme la pyuic5 (pour obtenir le Ui_Form classe) pour transformer le qml et de l'utiliser dans pyqt5.

Ceci est un exemple de l'ancienne app:

from main_screen import Ui_Form as Ui_main_screen
class MainScreen(QWidget, Ui_main_screen):
    teachButton = False
    manageButton = False
    utilitiesButton = False
    adminButton = False
    helpButton = False
    systemButton = False
    inspectionButton = False
    modelSelected = None
    def __init__(self):
        super(MainScreen, self).__init__()
        #QWidget.__init__(self)
        self.setupUi(self)
        self.trans = QTranslator(self)

        self.toLanguage()
        self.product()
        self.Menu() .....

Comme vous pouvez le voir, j'ai importé le Ui_Form dans l'écran principal de la classe. Maintenant je veux faire la même chose avec le fichier qml

import QtQuick 2.7
Item {
    width:904
    height:678
    Image {
        id: background
        source: "images/background.png"
        x: 0
        y: 1
        opacity: 1
    }
    Image {
        id: logo
        source: "images/logo.png"
        x: 691
        y: 34
        opacity: 1
    }
    Image {
        id: teach
        source: "images/teach.png"
        x: 717
        y: 154
        opacity: 1
    }
    Image {
        id: administration
        source: "images/administration.png"
        x: 711
        y: 410
        opacity: 0.49803921568627
    }
    Image {
        id: system
        source: "images/system.png"
        x: 708
        y: 468
        opacity: 0.49803921568627
    }
    Image {
        id: utilities
        source: "images/utilities.png"
        x: 711
        y: 353
        opacity: 0.49803921568627
    }
    Image {
        id: help
        source: "images/help.png"
        x: 712
        y: 524
        opacity: 0.49803921568627
    }
    Image {
        id: teachinf_wizard
        source: "images/teachinf_wizard.png"
        x: 740
        y: 196
        opacity: 1
    }
    Image {
        id: inspection
        source: "images/inspection.png"
        x: 713
        y: 295
        opacity: 0.49803921568627
    }
    Image {
        id: manage
        source: "images/manage.png"
        x: 714
        y: 239
        opacity: 1
    }
}

Alors, comment obtenir quelque chose comme Ui_Form de la classe avec le fichier qml

pyqt5 python qml
2021-11-12 10:19:15
1

La meilleure réponse

2

Réponse Courte:

Non, il ne peut pas être fait.

Réponse Longue:

L' .l'interface utilisateur sont simplement un ensemble d'instructions sur la façon dont les qwidgets doit être affiché, d'autre part, qml est un langage de programmation, car ils indiquent la manière dont les objets interagissent.

La chose la plus proche de ce que vous voulez est d'être en mesure d'intégrer le qml dans un QWidget, en utilisant par exemple QQuickWidget:

import os
import sys
import os
from pathlib import Path


from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuickWidgets import QQuickWidget


CURRENT_DIRECTORY = Path(__file__).resolve().parent


def main():

    app = QApplication(sys.argv)

    widget = QQuickWidget(resizeMode=QQuickWidget.ResizeMode.SizeRootObjectToView)
    filename = os.fspath(CURRENT_DIRECTORY / "main.qml")
    url = QUrl.fromLocalFile(filename)
    widget.setSource(url)
    widget.show()

    sys.exit(app.exec_())


if __name__ == "__main__":
    main()
2021-11-12 23:10:07

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................