Jak změnit .qml rozšíření .ui použít v pyqt5 aplikace

0

Otázka

Jsem vytvořit design své aplikace s qt designer a pak změnit každé okno python soubor pomocí příkazu pyuic5 příklad.ui -o example.py v moci získat Ui_Form třídy a volat to v mém programu. Takže každá věc funguje, ale teď jsme změnili design, a my jsme si qml soubory. Moje otázka je, jak pracovat s tímto qml soubory bez změny koncepce aplikace. Je tu metodu, jako pyuic5 (získat Ui_Form třídy) transformovat qml a používat jej v pyqt5.

Toto je příklad staré aplikace:

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

Jak můžete vidět, jsem dovezla Ui_Form do hlavní Obrazovka.třídy. Teď chci udělat to samé s qml soubor

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

Tak, jak se dostat něco jako Ui_Form třídy s qml soubor

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

Nejlepší odpověď

2

Krátká Odpověď:

Ne, to nemůže být provedeno.

Dlouhá Odpověď:

.ui jsou jen sadu instrukcí o tom, jak qwidgets by měly být zobrazeny, na druhou stranu, qml je programovací jazyk, protože ukazují, jak objekty interagují.

Nejbližší věc, co chcete, je být schopen vložte si qml do QWidget, pomocí například 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

V jiných jazycích

Tato stránka je v jiných jazycích

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