Cum de a schimba .qml la un .ui să-l folosească în pyqt5 cerere

0

Problema

Am creat un design de app mea cu qt designer și apoi transforma fiecare fereastră de la un fișier python folosind comanda pyuic5 exemplu.ui -o example.py în măsură pentru a obține o Ui_Form clasă și spune în program. Deci, fiecare lucru este de lucru, dar acum ne-am schimbat design-ul nostru și vom obține o qml fișiere. Întrebarea mea este cum să lucreze cu acest qml fișiere, fără a schimba concepte de aplicație. Există o metodă ca pyuic5 (pentru a obține Ui_Form clasa) de a transforma qml și de a folosi în pyqt5.

Acesta este un exemplu de aplicație:

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() .....

După cum puteți vedea, am importat Ui_Form în ecranul principal clasa. Acum vreau să fac același lucru cu qml fișier

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
    }
}

Deci, cum să obțineți ceva de genul Ui_Form clasa cu qml fișier

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

Cel mai bun răspuns

2

Răspuns Scurt:

Nici nu se poate face.

Răspuns Lung:

A .ui sunt doar un set de instrucțiuni privind modul în care qwidgets ar trebui să fie afișate, pe de altă parte, qml este un limbaj de programare, deoarece ele indică modul în care obiectele interacționează.

Cel mai apropiat lucru de ceea ce vrei este de a fi capabil de a încorpora qml într-un QWidget, folosind, de exemplu, 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

În alte limbi

Această pagină este în alte limbi

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