Ich habe mit PyQt5 und Python3 gespielt

Was ist Qt?

Qt (Cute) ist ein UI-Framework (Application User Interface), das in der Sprache C ++ geschrieben ist.

Qt ist allgemein als GUI-Toolkit bekannt, wird jedoch auch häufig in Nicht-GUI-Programmen wie Konsolentools und Servern verwendet. Aus Wikipedia

Ein Framework, das das Erstellen von GUI-Anwendungen vereinfacht. Es unterstützt auch die plattformübergreifende Entwicklung.

Was ist PyQt?

PyQt ist ein plattformübergreifendes GUI-Toolkit, die Python-Bindung von Qt, und eine der Optionen für die GUI-Programmierung in Python. Aus Wikipedia

Sie können problemlos Qt- und GUI-Anwendungen für Python erstellen.

Vorteile von PyQt

Probleme mit PyQt

Bereiten Sie zunächst eine Umgebung vor, in der Sie PyQt5 verwenden können

Verfahren

  1. Installieren Sie Python
  2. Installieren Sie Qt (kann lange dauern)
  3. Installieren Sie PyQt

Ich werde die Umgebungseinstellungen hier nicht erklären, also ggrks

Lassen Sie uns den Code tatsächlich schreiben

Lassen Sie uns zuerst das Fenster öffnen

window.py


#!/usr/bin/env python3

import sys
from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()

    main_window.show()
    sys.exit(app.exec_())

Wenn ich es starte, erscheint ein leeres Fenster

Fügen wir eine Schaltfläche und einen Titel hinzu

button.py


#!/usr/bin/env python3

import sys
from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        button = QPushButton('button')

        layout = QGridLayout()
        layout.addWidget(button)
        self.setLayout(layout)
        self.setWindowTitle("Button")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()

    main_window.show()
    sys.exit(app.exec_())

Mit Knopf und Titel

Lesen und zeigen wir den Wert des Textfelds an

input-output.py


#!/usr/bin/env python3

import sys
from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.button = QPushButton('Lesen / Anzeigen')
        self.button.clicked.connect(self.output)
        self.inputText = QLineEdit()
        self.inputText.setText("")

        self.outputText = QLineEdit()
        self.outputText.setText("")
        self.outputText.setReadOnly(True)

        textLayout = QHBoxLayout()
        textLayout.addWidget(self.inputText)
        textLayout.addWidget(self.outputText)

        layout = QVBoxLayout()
        layout.addLayout(textLayout)
        layout.addWidget(self.button)
        self.setLayout(layout)
        self.setWindowTitle("Button")

    def output(self):
        self.outputText.setText(self.inputText.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()

    main_window.show()
    sys.exit(app.exec_())

Wenn Sie Text eingeben und die Taste drücken, wird der Text ausgegeben

Zeigen Sie die in QGraphicsView eingegebene Zeichenfolge an

string-graphic.py


#!/usr/bin/env python3

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class ShowString(QGraphicsItem):
    def __init__(self, width=200, height=10, text=""):
        super(ShowString, self).__init__()
        self.width = width
        self.height = height
        self.text = text

    def paint(self, painter, option, widget):
        painter.setPen(Qt.black)
        painter.drawText(0, 20, self.text)

    def boundingRect(self):
        return QRectF(0,0,400,100)

    def setText(self, text):
        self.text = text
        self.update()

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.graphicView = QGraphicsView()
        self.showString = ShowString()
        scene = QGraphicsScene(self.graphicView)
        scene.setSceneRect(0, 0, 400, 100)
        self.graphicView.setScene(scene)
        self.graphicView.resize(300,50)
        scene.addItem(self.showString)

        self.button = QPushButton('Lesen / Anzeigen')
        self.button.clicked.connect(self.output)
        self.inputText = QLineEdit()
        self.inputText.setText("")

        self.outputText = QLineEdit()
        self.outputText.setText("")
        self.outputText.setReadOnly(True)

        textLayout = QHBoxLayout()
        textLayout.addWidget(self.inputText)
        textLayout.addWidget(self.outputText)

        layout = QVBoxLayout()
        layout.addWidget(self.graphicView)
        layout.addLayout(textLayout)
        layout.addWidget(self.button)
        self.setLayout(layout)
        self.setWindowTitle("Button")

    def output(self):
        self.outputText.setText(self.inputText.text())
        self.showString.setText(self.inputText.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()

    main_window.show()
    sys.exit(app.exec_())

Zeichenkettenausgabe in QGraphicsView zum vorherigen Programm hinzugefügt

Ich kann wieder ein Beispielprogramm hinzufügen. .. ..

Fortsetzung: Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen

Impressionen / Diskussion

Das ist alles zum Spielen mit PyQt5 und Python3. Ich mag es, weil ich GUIs sehr intuitiv gestalten kann.

Referenz

Ich habe es unten als Referenz verwendet. Vielen Dank. http://d.hatena.ne.jp/mFumi/20141112/1415806010 http://qiita.com/kenasman/items/55505654823e9d040e6e

Recommended Posts

Ich habe mit PyQt5 und Python3 gespielt
Ich habe Numba mit Python3.5 installiert und verwendet
Ich habe mit Wordcloud gespielt!
Ich habe eine GUI-App mit Python + PyQt5 erstellt
[Python] Ich habe mit der Verarbeitung natürlicher Sprache ~ Transformatoren ~ gespielt
Ich habe Jacobian und teilweise Differenzierung mit Python versucht
Ich habe Funktionssynthese und Curry mit Python versucht
Ich habe fp-Wachstum mit Python versucht
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Ich habe einen Blackjack mit Python gemacht!
Ich habe Java und Python verglichen!
Python-Kompilierung mit pyqt deploy
Python mit Pyenv und Venv
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe mit Python einen Blackjack gemacht.
[GUI mit Python] PyQt5-Vorbereitung-
Ich habe Wordcloud mit Python gemacht.
Funktioniert mit Python und R.
[GUI mit Python] PyQt5 -Paint-
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich habe versucht, Co-Filtering (Empfehlung) mit Redis und Python zu implementieren
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
[GUI mit Python] PyQt5 -Widget II-
pyenv-vertualenv installiert die Python3-Serie nicht gut
Scraping mit Python, Selen und Chromedriver
Ich habe versucht, WebScraping mit Python.
Kratzen mit Python und schöner Suppe
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Ich habe mit Python eine Lotterie gemacht.
Ich habe eine SMS mit Python gesendet
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[Einführung in den Systemhandel] Ich habe einen Stochastic Oscillator mit Python gezeichnet und damit gespielt ♬
[Python] Ich habe das Spiel von pip installiert und versucht zu spielen
Lesen und Schreiben von NetCDF mit Python
Ich mochte den Tweet mit Python. ..
Ich habe mit Mecab gespielt (morphologische Analyse)!
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
[GUI mit Python] PyQt5 -Custom Widget-
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Diesmal habe ich mit Prorate Python III und IV gelernt
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Ich habe mit Python einen Daemon erstellt
Ich habe die SMTP-Kommunikation mit Python versucht
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python