So starten Sie die Verwendung des Swing-GUI-Assistenten IntelliJ IDEA. Detaillierte Anleitung. Python-GUI: Erstellen einer einfachen Anwendung mit PyQt und Qt Designer

grafische Benutzeroberfläche, GUI) – eine Art Benutzeroberfläche, bei der Schnittstellenelemente (Menüs, Schaltflächen, Symbole, Listen usw.), die dem Benutzer auf dem Display angezeigt werden, in Form von grafischen Bildern ausgeführt werden.

Im Gegensatz zur Befehlszeilenschnittstelle hat der Benutzer in der GUI wahlfreien Zugriff (über Eingabegeräte – Tastatur, Maus, Joystick usw.) auf alle sichtbaren Bildschirmobjekte (Oberflächenelemente) und manipuliert diese direkt. Meistens werden Oberflächenelemente in einer GUI auf der Grundlage von Metaphern implementiert und zeigen deren Zweck und Eigenschaften an, was es für ungeübte Benutzer einfacher macht, Programme zu verstehen und zu beherrschen.

Die grafische Benutzeroberfläche ist Teil der Benutzeroberfläche und definiert die Benutzerinteraktion auf der Ebene der visualisierten Informationen.

Geschichte

In den frühen Siebzigern arbeiteten die meisten Benutzer am Computer an Zeichenterminals – die Steuerung des Systems erfolgte direkt über die Befehlszeile per Texteingabe.

Eigentlich gab es bei den ersten Computern keinen Zweifel an der Benutzeroberfläche – die Profis, die an ihnen arbeiteten, konnten es sich problemlos leisten, die komplexesten Anleitungen für den Umgang mit der ihnen anvertrauten Maschine zu studieren – früher oder später zahlte sich das sehr aus. Doch schon zu Zeiten der Röhrenmonster, als die Möglichkeit einer Invasion zahlreicher Amateurnutzer selbst bei den gewagtesten Prognosen nicht zu erwarten war, begannen manche schon darüber nachzudenken, die Schnittstelle eines scheinbar uneinnehmbaren Computers einfacher und verständlicher zu gestalten die Person, die am Terminal sitzt.

„Lampenmonster“

Experimente zeigten, dass der Benutzer viel schneller lernte, mit der neuen Anwendung zu arbeiten, indem er die grafische Oberfläche (auch bekannt als Graphical User Interface, auch bekannt als GUI) nutzte, anstatt sich die nächsten Befehle fleißig zu merken. Die Vorteile der Arbeit mit der GUI lagen auf der Hand: höhere Produktivität, offensichtlicher Komfort und einfach Freude an der Arbeit.

Tauchen Sie ein in die Theorie – was ist also eine Benutzeroberfläche? Der bekannte russische Programmierer M. Donskoy definiert dieses Konzept wie folgt: „Dazu gehört nicht nur und nicht einmal so sehr das Bild auf dem Bildschirm – dreidimensional, animiert oder einfach in einem modischen Design gestaltet – sondern wie der Benutzer.“ interagiert mit dem System.“ Einer der führenden Theoretiker auf diesem Gebiet, Theo Mandrel, definierte die beste Schnittstelle treffend als eine, die „dem Benutzer ermöglicht, zu tun, was er will, wann er will und wie er will“. Wenn wir uns den modernsten nähern Software Aus dieser Sicht muss ein erheblicher Teil davon (wenn nicht alle) als äußerst unbefriedigend angesehen werden. Wir werden jedoch später darauf zurückkommen, aber jetzt wenden wir uns noch einmal der Geschichte zu – wie begann alles?

Die theoretischen Grundlagen der GUI wurden in den 1960er Jahren durch die Arbeit des Mitarbeiters des SRI Research Center, Doug Engelbart, gelegt. Zu den Vorzügen dieses Mannes gehören eine Maus, ein mausgesteuerter Cursor auf einem Bildschirm und ein System von Bildschirmfenstern, die für Anwendungen verantwortlich sind läuft auf einem Computer. Und der Wachstumspunkt für Engelbarts Ideen, die später in eine vollwertige GUI umgesetzt wurden, war das Xerox Palo Alto Research Center, Xerox PARC, das um die Wende der 1960er und 1970er Jahre gegründet wurde – sie experimentierten mit einem Prototyp einer grafischen Benutzeroberfläche, in der die Das Zeichenterminal und die Befehlszeile wurden durch einen Punkt-zu-Punkt-Rasterbildschirm mit Symbolen und zahlreichen Fenstern ersetzt.

Zu dieser Zeit hatte die Xerox Corporation weltweite Berühmtheit erlangt, da sie fast ein Monopolist auf dem Markt für Kopiergeräte für Bürogeräte geworden war, und beschloss, ihr Geschäft zu diversifizieren und es in den aufstrebenden Bereich auszudehnen Computertechnologie. Bemerkenswert ist, dass damals niemand genau wusste, was zu tun war – Xerox versammelte unter einem Dach talentierte junge Leute von Universitätslinken, die aus politischen Gründen nicht für die Regierung arbeiten wollten, und gewährte ihren Mündeln relative Freiheit. Natürlich bereitete das studentische Umfeld der Verwaltung große Kopfschmerzen, trug aber gleichzeitig wesentlich zur Entstehung einer Vielzahl fortschrittlicher Ideen bei (als Beispiel können wir den ersten PC nennen, der bei PARC erstellt wurde und Laserdrucker). Eines davon war das sogenannte WIMP-Paradigma (Windows, Icons, Menus, Point-and-Click), aus dem sich später die GUI entwickelte.

1980 kamen grafische Benutzeroberflächen von Forschungslaboren auf den Markt, und ein Jahr später führte Xerox die entsprechenden Geräte ein grafische Oberfläche, 8010 STAR-Informationssystem. Die darauffolgenden Implementierungen erfreuten sich vor allem im PC-Markt großer Beliebtheit, und nur Sun begann von Anfang an, seine Workstations mit einer grafischen Oberfläche auszustatten. Und hier ist die von Xerox PARC in Alto- und Star-Computern implementierte GUI ( kommerzielle Version erstens) hatte keinen Markterfolg.

Tatsächlich scheiterten aus rein kommerzieller Sicht fast alle revolutionären Initiativen von Xerox ausnahmslos. Warum es so kam, lässt sich nur schwer eindeutig sagen – als Begründung wird unter anderem angeführt, dass das Unternehmen dem Patentschutz seiner Entwicklungen wenig Aufmerksamkeit schenkte, weshalb neue Xerox-Technologien weltweit kostenlos vertrieben wurden.

Erste GUI: Alto-Screenshot

In unserem Fall ging der wirklich durchschlagende kommerzielle Erfolg an ein völlig anderes Unternehmen – ein „Obstunternehmen“ unter dem Deckmantel von Apple Computers, wo eine ähnliche Entwicklung auf der Grundlage von Xerox-Ideen entstand. Nicht ohne die Hilfe von PARC-Mitarbeitern, die für Apple arbeiteten, wurde hier 1984 der berühmte Apple Macintosh auf den Markt gebracht. Ein großer Teil seiner Popularität war auf die sehr erfolgreiche GUI Lisa zurückzuführen, die in MacOS implementiert wurde.

GUI Lisa: Die ersten Versionen von MacOS sahen fast gleich aus

Die große Zahl nicht-professioneller Benutzer, die einen Macintosh Classic gekauft haben, ist ein beredter Beweis dafür. Aber es war Apples Lisa, die die erste war Persönlicher Computer, ausgestattet mit einer grafischen Benutzeroberfläche.

Neun Jahre später gelang es Apple übrigens einigermaßen, diesen Erfolg zu wiederholen, indem es eine vollwertige Fensteroberfläche in ein grundlegend neues Gerät einbaute – das Newton Message Pad mit dem Betriebssystem Newton OS 1.0 (1993).

Allerdings konnte das Unternehmen, das seiner Zeit in vielerlei Hinsicht voraus war, seine eigenen Errungenschaften nicht immer voll ausschöpfen – im November 1985 veröffentlichte Microsoft die erste Version seiner grafischen Oberfläche für sich Betriebssystem MS-DOS – Windows 1.0 (Betriebsbezeichnung Interface Manager). Dies war wahrscheinlich das erste Betriebssystem, das niemand bestellte, und Gates verpflichtete sich, es auf eigene Gefahr und Gefahr zu entwickeln. Die darin enthaltenen Fenster überschnitten sich nicht und aufgrund der offensichtlich fehlenden Optimierung für den 8086-Prozessor war der Kernel nicht kindisch fehlerhaft. Die Hauptplattform für Windows 1.0 war der berühmte IBM 286 PC/AT. Genau zwei Jahre später, im November 1987, wurde Windows 2.0 geboren und weitere anderthalb Jahre später wurde Version 2.10 veröffentlicht. Außer der Einführung überlappender Fenster gab es in diesen Versionen nichts besonders Neues.

Dem Apple-Management gefiel die Veröffentlichung von Windows 1.0 nicht besonders, und Steve Jobs fasste die Unzufriedenheit des Top-Managements mit folgendem Satz zusammen: „Die grafische Oberfläche ist natürlich jedermanns Zukunft, aber wenn so viel Neues vor uns liegt, warum hat Microsoft dann einfach unsere Lisa kopiert?!.“ Als Ergebnis Das beleidigte „Frucht“-Unternehmen reichte im 1988-Jahr eine Klage gegen Microsoft ein – wegen Übergriffs auf Aussehen Mac OS. Der Rechtsstreit zog sich über mehrere Jahre hin, nach und nach wuchs die Forderungshöhe auf die astronomische Höhe von zu Beginn mehr als fünfundneunzig Milliarden Dollar an, was diesen ohnehin schon wenig aussichtsreichen Fall zu einem nahezu aussichtslosen Fall machte – aussichtslos vor allem deshalb, weil Microsoft Als man mit der Entwicklung von Windows begann, kaufte Apple eine Lizenz für die GUI. Die objektive Beurteilung des Grades der „Unzulässigkeit“ des Ausleihens von Schnittstellenelementen von Apple ist äußerst problematisch geworden, und die GUI ist hinter den Fenstern verborgen Quelle war völlig anders.

Screenshot von Windows 1.0 – kein Desktop, keine Dateisymbole oder Verknüpfungen.

Gates stimmte schließlich der Unterzeichnung einer Vereinbarung zu, dass sein Unternehmen die Apple-Schnittstelle nicht für Windows 1.0 verwenden würde, aber das Dokument sagte nichts über zukünftige Versionen des Produkts aus. Dieser harmlose Umstand verfolgte uns erneut völlig im Jahr 1995, als „Chicago“ auf den Markt kam – das berühmte Windows 95 mit einem Interface-Design, das mehr als andere Versionen dem ursprünglichen Apple-GUI-Design ähnelte (obwohl es in gewisser Weise nachgeahmt wurde). geschickten Händen von Microsoft-Mitarbeitern). Und im August 1997, nach eineinhalb Jahren der schwersten kommerziellen Misserfolge von Apple, half das florierende Microsoft dem Unternehmen, aus dem finanziellen Abgrund zu klettern, indem es 100.000 Apple-Aktien für 150 Millionen US-Dollar kaufte. Ein offensichtlicher politischer Schritt, nach dem der langwierige Rechtsstreit um die GUI endlich beendet wurde. Tatsächlich duldet die Geschichte keine Konjunktivstimmungen, aber wenn Apple es plötzlich schaffen würde, diesen Fall schnell zu gewinnen, würde die Welt ein phänomenal explosives Wachstum erleben offene Architektur IBM-kompatible PCs in den 1990er Jahren?

Mögliche Zukunft von GUI – 3D-Betriebssystemen

Der moderne Durchschnittsbenutzer kann sich die Arbeit mit einem Computer ohne zahlreiche Fenster, Schaltflächen und Pfeile – diese sehr „freundliche und verständliche Oberfläche“ – nicht mehr vorstellen, und nur eine Kohorte fortgeschrittener Profis bevorzugt immer noch die unveränderte Verwendung Befehlszeile. Im Prinzip kommt es darauf an, wer sich wohlfühlt und welche Ziele verfolgt werden – auch bei der modernen Weiterentwicklung der Benutzeroberfläche erweisen sich viele Funktionen im grafischen Fenstermodus als nicht zugänglich oder unkomfortabel, und auch die GUI selbst lässt oft viel zu wünschen übrig zu wünschen übrig... Tatsache bleibt jedoch, dass es die grafische Benutzeroberfläche war, die zu einem der Hauptgründe für die Verbreitung von Computern bei der breiten Verbrauchermasse wurde.

Eine Kohorte fortgeschrittener Fachleute bevorzugt die Verwendung einer unveränderlichen Befehlszeile.

Einstufung

Folgende GUI-Typen können unterschieden werden:

  • einfach: Standardbildschirmformulare und Standardschnittstellenelemente, die vom GUI-Subsystem selbst bereitgestellt werden;
  • echt grafisch, zweidimensional: nicht standardmäßige Schnittstellenelemente und Originalmetaphern, implementiert durch die eigenen Tools der Anwendung oder eine Bibliothek eines Drittanbieters;
  • dreidimensional.

DWIM

Eine der Voraussetzungen für eine gute grafische Oberfläche eines Softwaresystems ist das Konzept „Tue, was ich meine“ oder DWIM (englisch: Do What I Mean). DWIM erfordert, dass das System vorhersehbar arbeitet, sodass der Benutzer intuitiv im Voraus weiß, welche Aktion das Programm ausführen wird, wenn er seinen Befehl erhält.

Vorteile

  • Die grafische Oberfläche ist „benutzerfreundlich“ für Benutzer, die ihre Bekanntschaft mit dem Computer über die grafische Oberfläche begonnen haben.
  • In Grafikverarbeitungsprogrammen ist dies oft die einzig mögliche

Mängel

  • Höherer Speicherverbrauch im Vergleich zur Textschnittstelle
  • Es ist schwieriger, Remote-Arbeit zu organisieren
  • Unmöglichkeit der Automatisierung, wenn sie nicht vom Autor des Programms beabsichtigt war
  • Die grafische Benutzeroberfläche ist nicht „benutzerfreundlich“ für Benutzer, die ihre Bekanntschaft mit dem Computer über die Befehlszeilenschnittstelle begonnen haben.
  • Für blinde Menschen ist die grafische Oberfläche schwieriger zu bedienen.

Liste beliebter GUIs

  1. GNOME
  • Windows
  1. Windows Vista
  2. Windows 7
  3. Windows 10
  • Mac OS X
  1. Leopard

Links

  1. Grafische Benutzeroberfläche. (2016, 22. Dezember). In Wikipedia, der freien Enzyklopädie. Abgerufen am 22. Dezember 2016 um 00:07 Uhr von https://en.wikipedia.org/w/index.php?title=Graphical_user_interface&oldid=756097302
  2. imtime [Elektronische Ressource]: GUI (Graphical User Interface) – wer ist also zuerst? / Zugriffsdatum: 25.12.16. - Zugriffsmodus:

Leitender Technologieautor

Jemand hat dir eine geschickt Email GUI-Datei und Sie wissen nicht, wie man sie öffnet? Vielleicht haben Sie eine GUI-Datei auf Ihrem Computer gefunden und sich gefragt, was das ist? Windows teilt Ihnen möglicherweise mit, dass Sie es nicht öffnen können, oder im schlimmsten Fall erhalten Sie eine entsprechende Fehlermeldung im Zusammenhang mit der GUI-Datei.

Bevor Sie eine GUI-Datei öffnen können, müssen Sie herausfinden, um welche Art von Datei es sich bei der GUI-Dateierweiterung handelt.

Tipp: Falsche GUI-Dateizuordnungsfehler können ein Symptom für andere zugrunde liegende Probleme in Ihrem Windows-Betriebssystem sein. Diese ungültigen Einträge können auch zu damit verbundenen Symptomen wie langsamen Windows-Startvorgängen, Einfrieren des Computers und anderen PC-Leistungsproblemen führen. Daher wird dringend empfohlen, dass Sie Ihre Windows-Registrierung auf ungültige Dateizuordnungen und andere Probleme im Zusammenhang mit einer fragmentierten Registrierung scannen.

Antwort:

GUI-Dateien enthalten Datendateien, die hauptsächlich mit Doom User Interface Information (Id Software Inc.) verknüpft sind.

GUI-Dateien sind auch mit GUI Design Studio Project File (Caretta Software Ltd.) und FileViewPro verknüpft.

Weitere Dateitypen können ebenfalls die GUI-Dateierweiterung verwenden. Wenn Ihnen andere Dateiformate bekannt sind, die die GUI-Dateierweiterung verwenden, kontaktieren Sie uns bitte, damit wir unsere Informationen entsprechend aktualisieren können.

So öffnen Sie Ihre GUI-Datei:

Der schnellste und einfachste Weg, Ihre GUI-Datei zu öffnen, ist ein Doppelklick darauf. In diesem Fall Windows-System sie wird wählen das nötige Programm um Ihre GUI-Datei zu öffnen.

Falls Ihre GUI-Datei nicht geöffnet wird, ist es sehr wahrscheinlich, dass auf Ihrem PC nicht das erforderliche Anwendungsprogramm installiert ist, um Dateien mit GUI-Erweiterungen anzuzeigen oder zu bearbeiten.

Wenn Ihr PC die GUI-Datei öffnet, aber in falsches Programm, müssen Sie die Dateizuordnungseinstellungen in Ihrem ändern Windows-Registrierung. Mit anderen Worten: Windows ordnet GUI-Dateierweiterungen dem falschen Programm zu.

Installieren Sie optionale Produkte – FileViewPro (Solvusoft) | | | |

GUI-Dateianalysetool™

Sie sind sich nicht sicher, um welchen Typ es sich bei der GUI-Datei handelt? Möchten Sie genaue Informationen über eine Datei, ihren Ersteller und wie sie geöffnet werden kann?

Jetzt können Sie alles sofort bekommen notwendige Informationenüber die GUI-Datei!

Das revolutionäre GUI File Analysis Tool™ scannt, analysiert und meldet detaillierte GUI-Dateiinformationen. Unser zum Patent angemeldeter Algorithmus analysiert die Datei schnell und stellt innerhalb von Sekunden detaillierte Informationen in einem klaren, leicht lesbaren Format bereit.†

In nur wenigen Sekunden wissen Sie genau, welche Art von GUI-Datei Sie haben, welche Anwendung mit der Datei verknüpft ist, den Namen des Benutzers, der die Datei erstellt hat, den Sicherheitsstatus der Datei und andere nützliche Informationen.

Um Ihre kostenlose Dateianalyse zu starten, ziehen Sie einfach Ihre GUI-Datei per Drag & Drop hinein gepunktete Linie unten oder klicken Sie auf „Mein Computer durchsuchen“ und wählen Sie eine Datei aus. Der GUI-Dateianalysebericht wird unten direkt im Browserfenster angezeigt.

Ziehen Sie die GUI-Datei hierher, um die Analyse zu starten

Sehen Sie sich meinen Computer an »

Bitte überprüfen Sie auch meine Datei auf Viren

Ihre Datei wird analysiert. Bitte warten Sie.

Dieser Artikel richtet sich an diejenigen, die gerade erst mit der Erstellung von grafischen Benutzeroberflächen (GUI)-Anwendungen in Python beginnen. Darin befassen wir uns mit den Grundlagen der Verwendung von PyQt in Verbindung mit Qt Designer. Schritt für Schritt erstellen wir einfaches Python GUI-Anwendung, die den Inhalt des ausgewählten Verzeichnisses anzeigt.

Was brauchen wir

Wir benötigen natürlich PyQt und Qt Designer und Python.

In diesem Artikel wird PyQt5 mit Python 3 verwendet, es gibt jedoch keine wesentlichen Unterschiede zwischen PyQt und PySide oder ihren Python 2-Versionen.

Linux: Alles, was Sie brauchen, befindet sich wahrscheinlich in den Repositories Ihrer Distribution. Qt Designer kann über das Application Center installiert werden, PyQt muss jedoch über das Terminal installiert werden. Sie können alles, was wir brauchen, mit einem Befehl installieren, zum Beispiel so:

# für Fedora: $ sudo dnf install python3-qt5 qt-creator # für Debian/Ubuntu: $ sudo apt install python3-qt5 pyqt5-dev-tools qtcreator

Wenn Sie mit den Vorbereitungen fertig sind, öffnen Sie eine Eingabeaufforderung/ein Terminal und stellen Sie sicher, dass Sie den Befehl pyuic5 verwenden können. Sie sollten Folgendes sehen:

$ pyuic5 Fehler: Es muss eine Eingabe-UI-Datei angegeben werden

Wenn Sie eine Meldung sehen, dass es keinen solchen Befehl oder ähnliches gibt, versuchen Sie, eine Lösung für das Problem für Ihr Betriebssystem und Ihre PyQt-Version zu googeln.

Wenn Sie Windows verwenden, ist der Pfad C:\Python36\Scripts (ändern Sie 36 zu Ihrer Python-Version) höchstwahrscheinlich nicht in Ihrem PATH aufgeführt. Schauen Sie sich diesen Thread auf Stack Overflow an, um herauszufinden, wie Sie das Problem lösen können.

Design

Grundlagen

Nachdem wir nun alles bereit haben, beginnen wir mit einem einfachen Design.

Öffnen Sie Qt Designer. Dort wird ein neues Formulardialogfeld angezeigt. Wählen Sie es aus Hauptfenster und drücke Erstellen.

Danach sollten Sie haben bilden- eine Vorlage für ein Fenster, dessen Größe geändert werden kann und in das Objekte aus dem Widget-Fenster eingefügt werden können usw. Schauen Sie sich die Benutzeroberfläche an, sie ist ganz einfach.

Jetzt ändern wir die Größe unseres Hauptfensters ein wenig, denn... Wir brauchen es nicht, dass es so groß ist. Entfernen wir auch das automatisch hinzugefügte Menü und die Statusleiste, da sie in unserer Anwendung nicht nützlich sind.

Alle Formularelemente und ihre Standardhierarchie werden auf der rechten Seite des aufgerufenen Qt-Designer-Fensters angezeigt Objektinspektor. Sie können Objekte ganz einfach löschen, indem Sie darauf klicken Rechtsklick Maus in diesem Fenster. Oder Sie können sie im Hauptformular auswählen und die Taste drücken DEL auf der Tastatur.

Als Ergebnis haben wir ein fast leeres Formular. Das einzige verbleibende Objekt ist centralwidget, aber wir werden es brauchen, also werden wir nichts damit machen.

Ziehen Sie es nun per Drag & Drop irgendwo auf das Hauptformular Listen-Widget(Nicht Listenansicht) Und Druckknopf aus Widget-Box.

Layouts

Anstatt feste Positionen und Größen von Elementen in Ihrer Anwendung zu verwenden, ist es besser, Layouts zu verwenden. Feste Positionen und Größen sehen für Sie gut aus (solange Sie die Größe des Fensters nicht ändern), aber Sie können nie sicher sein, dass auf anderen Computern und/oder Betriebssystemen alles genau gleich ist.

Layouts sind Container für Widgets, die diese an einer bestimmten Position relativ zu anderen Elementen halten. Daher ändert sich bei einer Änderung der Fenstergröße auch die Größe der Widgets.

Lassen Sie uns unser erstes Formular erstellen, ohne Layouts zu verwenden. Ziehen Sie die Liste und die Schaltfläche auf das Formular und ändern Sie ihre Größe, sodass es wie folgt aussieht:

Klicken Sie nun im Qt-Designer-Menü auf Bilden, dann auswählen Vorschau und Sie werden etwas Ähnliches wie im Screenshot oben sehen. Sieht gut aus, nicht wahr? Aber Folgendes passiert, wenn wir die Fenstergröße ändern:

Unsere Objekte blieben an den gleichen Stellen und behielten ihre Größe, obwohl sich die Größe des Hauptfensters geändert hat und die Schaltfläche fast unsichtbar ist. Aus diesem Grund lohnt sich in den meisten Fällen der Einsatz von Mockups. Natürlich gibt es Zeiten, in denen Sie beispielsweise eine feste oder minimale/maximale Breite für ein Objekt benötigen. Aber im Allgemeinen ist es bei der Entwicklung einer Anwendung besser, Mockups zu verwenden.

Das Hauptfenster unterstützt bereits Layouts, sodass wir unserem Formular nichts hinzufügen müssen. Klicken Sie einfach mit der rechten Maustaste auf Hauptfenster V Objektinspektor und auswählen LayoutVertikal auslegen. Sie können auch mit der rechten Maustaste auf einen leeren Bereich im Formular klicken und dieselben Optionen auswählen:

Ihre Elemente sollten in der gleichen Reihenfolge sein wie vor den Änderungen. Wenn dies nicht der Fall ist, ziehen Sie sie einfach an die richtige Stelle.

Da wir die vertikale Platzierung verwendet haben, werden alle von uns hinzugefügten Elemente vertikal platziert. Sie können Platzierungen kombinieren, um das gewünschte Ergebnis zu erzielen. Wenn Sie beispielsweise zwei Schaltflächen horizontal in einer vertikalen Schaltfläche platzieren, würde dies folgendermaßen aussehen:

Wenn Sie ein Element im Hauptfenster nicht verschieben können, können Sie dies im Fenster tun Objektinspektor.

Feinschliff

Dank der vertikalen Platzierung sind unsere Elemente nun korrekt ausgerichtet. Das Einzige, was noch zu tun ist (aber nicht notwendig ist), ist, den Namen der Elemente und ihren Text zu ändern.

In einer einfachen App wie dieser mit nur einer Liste und einer Schaltfläche ist das Ändern von Namen nicht erforderlich, da sie ohnehin einfach zu verwenden ist. Allerdings sollte man sich von Anfang an an die korrekte Benennung von Elementen gewöhnen.

Elementeigenschaften können im Abschnitt geändert werden Eigenschaftseditor.

Tipp: Sie können die Größe ändern, häufig verwendete Elemente verschieben oder zur Qt Designer-Oberfläche hinzufügen, um Ihren Arbeitsablauf zu beschleunigen. Über den Menüpunkt können Sie versteckte/geschlossene Teile der Oberfläche hinzufügen Sicht.

Klicken Sie auf die Schaltfläche, die Sie dem Formular hinzugefügt haben. Jetzt in Eigenschaftseditor Sie sollten alle Eigenschaften dieses Elements sehen. Im Moment interessieren uns der Objektname und der Text im Abschnitt QAbstractButton. Sie können Abschnitte komprimieren Eigenschaftseditor indem Sie auf den Abschnittsnamen klicken.

Ändern Sie den Objektnamen in btnBrowse und den Text in Ordner auswählen.

Es sollte so aussehen:

Der Name des Listenobjekts ist listWidget, was in diesem Fall durchaus passend ist.

Speichern Sie das Design als design.ui in Ihrem Projektordner.

Design in Code verwandeln

Natürlich können Sie .ui-Dateien direkt aus Python-Code verwenden, aber es gibt einen anderen Weg, der möglicherweise einfacher erscheint. Wir können den Code der .ui-Datei in eine Python-Datei konvertieren, die wir dann importieren und verwenden können. Hierzu verwenden wir den Befehl pyuic5 aus dem Terminal/der Befehlszeile.

Um die .ui-Datei in eine Python-Datei namens design.py zu konvertieren, verwenden Sie den folgenden Befehl:

$ pyuic5 Pfad/zu/design.ui -o Ausgabe/Pfad/zu/design.py

Code schreiben

Jetzt haben wir eine design.py-Datei mit dem notwendigen Teil des Designs unserer Anwendung und können mit der Erstellung ihrer Logik beginnen.

Erstellen Sie eine main.py-Datei in dem Ordner, in dem sich design.py befindet.

Wir nutzen Design

Für die Python-GUI-Anwendung benötigen Sie folgende Module:

Import sys # sys ist erforderlich, um argv von PyQt5 import QtWidgets an QApplication zu übergeben

Wir benötigen außerdem den Designcode, den wir zuvor erstellt haben, also importieren wir auch diesen:

Design importieren # Dies ist unsere konvertierte Designdatei

Da die Designdatei bei jeder Änderung des Designs komplett neu geschrieben wird, werden wir sie nicht ändern. Stattdessen erstellen wir eine neue Klasse „ExampleApp“, die wir mit dem Designcode kombinieren, um die gesamte Funktionalität zu nutzen:

Klasse exampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow): def __init__(self): # Dies wird hier benötigt, um auf Variablen, Methoden # usw. zuzugreifen. in der design.py-Datei super().__init__() self.setupUi(self) # Dies wird benötigt, um unser Design zu initialisieren

In diesem Kurs werden wir mit Schnittstellenelementen interagieren, Verbindungen hinzufügen und alles andere, was wir brauchen. Aber zuerst müssen wir die Klasse initialisieren, wenn wir den Code ausführen. Wir werden uns damit in der main()-Funktion befassen:

Def main(): app = QtWidgets.QApplication(sys.argv) # Neue Instanz von QApplication window = BeispielApp() # Erstellen Sie ein Objekt der BeispielApp-Klasse window.show() # Zeigen Sie das Fenster app.exec_() an # und führen Sie es aus die Anwendung

Und um diese Funktion auszuführen, verwenden wir die übliche Konstruktion:

If __name__ == "__main__": # Wenn wir die Datei direkt ausführen, anstatt main() zu importieren #, dann führen wir die Funktion main() aus

Als Ergebnis sieht main.py so aus:

Import sys # sys нужен для передачи argv в QApplication from PyQt5 import QtWidgets import design # Это наш конвертированный файл дизайна class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow): def __init__(self): # Это здесь нужно для доступа к переменным, методам # usw. in der design.py-Datei super().__init__() self.setupUi(self) # Dies wird benötigt, um unser Design zu initialisieren def main(): app = QtWidgets.QApplication(sys.argv) # Neue Instanz von QApplication window = BeispielApp () # Erstellen Sie ein Objekt der BeispielApp-Klasse window.show() # Zeigen Sie das Fenster app.exec_() an # und starten Sie die Anwendung, wenn __name__ == "__main__": # Wenn wir die Datei direkt starten und main nicht importieren( ) # Dann starten wir die Funktion main()

Wenn wir diesen Code ausführen: $ python3 main.py wird unsere Anwendung gestartet!

Aber das Drücken der Taste bewirkt nichts, also müssen wir es herausfinden.

Hinzufügen von Funktionen zu unserer Python-GUI-Anwendung

Hinweis: Der gesamte weitere Code wird innerhalb der Klasse „ExampleApp“ geschrieben.

Beginnen wir mit der Schaltfläche Ordner auswählen. Sie können ein Ereignis wie das Klicken auf eine Schaltfläche wie folgt an eine Funktion binden:

Self.btnBrowse.clicked.connect(self.browse_folder)

Fügen Sie diese Zeile zur Methode __init__ der Klasse „ExampleApp“ hinzu, um sie beim Start der Anwendung zu binden. Schauen wir uns das nun genauer an:

  • self.btnBrowse: Hier ist btnBrowse der Name des Objekts, das wir in Qt Designer definiert haben. self ist selbsterklärend und bedeutet, dass es zur aktuellen Klasse gehört;
  • angeklickt ist das Ereignis, das wir binden möchten. Unterschiedliche Elemente haben unterschiedliche Ereignisse, beispielsweise haben Listen-Widgets itemSelectionChanged usw.;
  • connect() – eine Methode, die ein Ereignis an einen Aufruf der übergebenen Funktion bindet;
  • self.browse_folder ist lediglich eine Funktion (Methode), die wir in der Klasse „ExampleApp“ beschrieben haben.

Um einen Ordnerauswahldialog zu öffnen, können wir die integrierte Methode QtWidgets.QFileDialog.getExistingDirectory verwenden:

Directory = QtWidgets.QFileDialog.getExistingDirectory(self, „Ordner auswählen“)

Wenn der Benutzer ein Verzeichnis auswählt, wird die Verzeichnisvariable auf den absoluten Pfad zum ausgewählten Verzeichnis gesetzt, andernfalls ist sie None . Um zu vermeiden, dass weiterer Code ausgeführt wird, wenn der Benutzer den Dialog schließt, verwenden wir den Befehl if Directory:.

Um den Inhalt des Verzeichnisses anzuzeigen, müssen wir das Betriebssystem importieren:

Betriebssystem importieren

Und erhalten Sie die Inhaltsliste wie folgt:

Os.listdir(Pfad)

Um Elemente zu listWidget hinzuzufügen, verwenden wir die Methode addItem() und um alle Elemente zu entfernen, haben wir self.listWidget.clear() .

Als Ergebnis sollte die Funktion browse_folder wie folgt aussehen:

Def browse_folder(self): self.listWidget.clear() # Falls bereits Elemente im Listenverzeichnis vorhanden sind = QtWidgets.QFileDialog.getExistingDirectory(self, "Wählen Sie einen Ordner aus") # Öffnen Sie den Verzeichnisauswahldialog und legen Sie den Wert von fest die Variable # zum Pfad zum ausgewählten Verzeichnis, wenn Verzeichnis: # Ausführung nicht fortsetzen, wenn der Benutzer kein Verzeichnis für Dateiname in os.listdir(Verzeichnis) ausgewählt hat: # für jede Datei im Verzeichnis self.listWidget.addItem(Dateiname ) # Datei zu listWidget hinzufügen

Wenn wir nun die Anwendung ausführen, auf die Schaltfläche klicken und ein Verzeichnis auswählen, sehen wir:

So sieht der gesamte Code unserer Python-GUI-Anwendung aus:

Import sys # sys wird benötigt, um argv an QApplication zu übergeben. import os # Von hier aus benötigen wir Methoden, um den Inhalt von Verzeichnissen aus PyQt5 anzuzeigen. import QtWidgets import design # Dies ist unsere konvertierte Designdateiklasse. BeispielApp(QtWidgets.QMainWindow, design.Ui_MainWindow) : def __init__(self) : # Dies wird hier benötigt, um auf Variablen, Methoden # usw. zuzugreifen. in der Datei design.py super().__init__() self.setupUi(self) # Dies wird benötigt, um unser Design zu initialisieren self.btnBrowse.clicked.connect(self.browse_folder) # Führen Sie die Funktion browse_folder # aus, wenn auf die Schaltfläche geklickt wird def browse_folder(self) : self.listWidget.clear() # Falls sich bereits Elemente im Listenverzeichnis befinden = QtWidgets.QFileDialog.getExistingDirectory(self, "Wählen Sie einen Ordner aus") # Öffnen Sie den Verzeichnisauswahldialog und legen Sie den Wert von fest die Variable # entspricht dem Pfad zum ausgewählten Verzeichnis, wenn Verzeichnis: # Ausführung nicht fortsetzen, wenn der Benutzer kein Verzeichnis für Dateiname in os.listdir(Verzeichnis) ausgewählt hat: # für jede Datei im Verzeichnis self.listWidget.addItem( Dateiname) # Datei zu listWidget hinzufügen def main(): app = QtWidgets.QApplication (sys.argv) # Neue Instanz von QApplication window = exampleApp() # Ein Objekt der Klasse „ExampleApp“ erstellen window.show() # Fenster anzeigen app.exec_() # und führen Sie die Anwendung aus, wenn __name__ == "__main__": # Wenn wir die Datei direkt ausführen, anstatt main() zu importieren # dann führen wir die Funktion main() aus

Dies waren die Grundlagen für die Verwendung von Qt Designer und PyQt Python-Entwicklung Anwendungs-GUI. Jetzt können Sie das Anwendungsdesign sicher ändern und den Befehl pyuic5 verwenden, ohne befürchten zu müssen, dass der geschriebene Code verloren geht.

Machen wir uns zunächst mit dem Format selbst vertraut, mit dem wir arbeiten müssen. Das Matroska-Format (Matroschka) wurde ursprünglich als Open-Source-Projekt entwickelt, das als Alternative zu bestehenden proprietären Containern dienen sollte. Infolgedessen gelangte es nach mehreren Jahren der Entwicklung auf den Markt und gewann schnell an Popularität, insbesondere im Internet. Was hat zu einem so schnellen Anstieg der Popularität geführt? Erstens, weil die Ersteller darauf gehört haben, was die Benutzer in ihren Videodateien sehen möchten, und dies umgesetzt haben. In den allermeisten Fällen erfordert die Wiedergabe der Videodatei die Unterstützung mehrerer Audiospuren und Untertitel. IN MKV-Format All dies wird so einfach und komfortabel wie möglich umgesetzt. Sie können beliebig viele alternative Audiodateien und Untertitel in den Container legen und mit einem Klick zwischen ihnen wechseln.

Schauen wir uns an, in welchen Fällen die Verwendung des Programms erforderlich sein kann. Sie haben beispielsweise einen Film heruntergeladen, in dem der Haupttitel eine Datei mit russischer Übersetzung ist und die anderen Titel, einschließlich des englischen, in separaten Dateien vorliegen. Und Sie brauchen nur einen originalen englischen Titel, um Ihre Sprachkenntnisse zu verbessern. Sie können natürlich während der Wiedergabe eine externe Straße anschließen, aber viele Player haben damit Probleme, einige bieten solche Funktionen überhaupt nicht, bei anderen ist es möglich, aber ziemlich schwierig. Wie soll es in diesem Fall sein? Hier kommt die MKVmerge-GUI zum Einsatz. Im Folgenden verraten wir Ihnen, wie Sie schnell und einfach externe Tracks zum MKV-Container hinzufügen und dann im Player selbst schnell und einfach zwischen ihnen wechseln können.

Hinzufügen zusätzlicher Audiospuren zum MKV-Container

Wir werden dieses Verfahren am Beispiel des Programms MKVtoolnix 5.9 und des Cartoons „Secret of Kells“ durchführen. Wir verfügen über einen Originalcontainer mit zwei Audiospuren und 4 externen Zusatzstraßen. Was wir zu den ersten beiden hinzufügen werden, um als Ergebnis eine Datei zu erhalten.

So sieht das Hauptprogrammfenster aus.

Um eine Datei hinzuzufügen, mit der wir arbeiten, müssen Sie auf die Schaltfläche „Hinzufügen“ klicken oder sie einfach in den Bereich „Eingabedateien“ ziehen. Danach werden wir Informationen zu dieser Datei darin haben.

Wie Sie im Screenshot sehen können, enthält unser Container bereits 1 Videodatei im MPEG4-Format, 2 Audiospuren (russische und englische Kommentare) sowie 21 Untertiteldateien und Kapiteldateien. Darüber hinaus möchten wir dem Container die englische Originalversion, 2 weitere russische Alternativübersetzungen und 1 Ukrainisch hinzufügen. Dazu klicken wir auf die gleiche Weise auf die Schaltfläche „Hinzufügen“ oder ziehen Dateien per Drag & Drop mit der Maus.

Jetzt haben wir 5 Positionen in den Eingabedateien. Im Prinzip reicht dies aus, um die Bildung des Behälters abzuschließen. Aber kleine Verbesserungen sind möglich. Wie Sie im Screenshot sehen können, wurden neue Soundstraßen ganz am Ende der Liste hinzugefügt; außerdem haben sie keinen Namen und die Sprache ist nicht definiert. Dies kann durch entsprechende Änderungen behoben werden. Erstens Audiospuren Sie können sie in der Liste nach oben „verschieben“, indem Sie sie markieren und mehrmals auf die Schaltfläche „Nach oben“ drücken. Zweitens können wir ihnen Beschreibungen hinzufügen, indem wir die entsprechenden Daten in das Feld „Trackname“ eingeben. Wir können auch die Sprache des Tracks im Feld „Sprache“ angeben und den „Standard“-Track festlegen (dieser ist derjenige, der automatisch eingeschaltet wird, wenn das Video startet).

Wie wir jetzt sehen können, befindet sich der englische Titel unter den ersten beiden, er hat einen Namen – Original, die Sprache ist auf Englisch ausgewählt und die Standard-Titelflagge ist gesetzt. Nehmen wir an, dass dies alles ist, was wir tun mussten, und beginnen wir mit der Erstellung der Datei. Klicken Sie dazu einfach auf die Schaltfläche „Verarbeitung starten“. Damit unsere Datei schöner aussieht, geben wir ihr übrigens auch einen anderen Ausgabenamen. Ripper geben im Dateinamen oft viele Informationen an, die für den Benutzer unnötig sind, daher kürzen wir ihn und lassen nur den Namen und die Auflösung übrig. Dies kann im Punkt „Ausgabedateiname“ erfolgen.

In diesem Screenshot sehen Sie, wie das Programm eine Datei verarbeitet.