Verwenden Sie Microsoft Word? Wenn ich einen Universitätsbericht schreibe, wenn ich ihn im Word-Format einreiche, starte ich Word und schreibe den Bericht. In letzter Zeit habe ich immer mehr Berichte mit Google Dokumenten geschrieben ... aber ich schreibe nicht genug Sätze, um Word in der Welt zu öffnen ... Ich muss nicht einmal einen Browser starten und Google Dokumente öffnen ... Ist es nicht nur ein Memo? (Nur ich?) Zu diesem Zeitpunkt möchten Sie häufig die Anzahl der Zeichen zählen ... (Wata ry) Deshalb habe ich in Python einen Zeichenzähler erstellt. Für vielbeschäftigte Menschen lautet der Quellcode [hier. ](# 4-Quellcode)
Mac OS Catalina Python 3.7.6 PySimpleGUI 4.18.2
Wenn es um die Implementierung der GUI in Python geht, fällt mir als Erstes Tkinter ein. Ich habe darüber nachgedacht, es in Tkinter zu implementieren, aber irgendwie fand ich es etwas kompliziert ... also suchte ich nach einer anderen guten Bibliothek und fand sie ** [PySimpleGUI](https: /) /pysimplegui.readthedocs.io/en/latest/) **. Dieses Mal werden wir also mit der Implementierung unter Verwendung dieser Bibliothek fortfahren.
Als eine Funktion, die ich persönlich für den Zeichenzähler benötige,
--Count-Taste
--Quit-Taste
Es ist ziemlich gut, wenn es genug gibt. Die minimal erforderlichen Funktionen sind ausreichend. Weil ich es nur ein wenig bewege. Wir werden diese drei implementieren.
Installieren Sie zunächst die PySimple-Benutzeroberfläche. Wenn Sie es noch nicht installiert haben, im Terminal
pip install pysimplegui
Eingeben.
Sobald die Installation abgeschlossen ist, werden wir sofort mit der Implementierung beginnen.
Was ich diesmal importiert habe
re
PySimpleGUI as sg
Es gibt zwei.
Stellen Sie das Thema am Anfang ein. Ich habe "DarkAmber" gewählt, weil mir gefällt, wie es aussieht. Dieser Bereich ist Ihre Wahl. Weitere Informationen finden Sie unter hier.
wordcounter.py
import PySimpleGUI as sg
import re
sg.theme('DarmAmber')
Damit sind die Designeinstellungen abgeschlossen. Betrachten Sie als Nächstes das GUI-Layout. Das Layout ist
layout = []
Es kann frei in Form eines Arrays eingestellt werden. ich
wordcounter.py
import PySimpleGUI as sg
import re
sg.theme('DarkAmber')
layout = [
[sg.Text('Word Counter')],
[sg.Multiline((), size=(70, 30))],
[sg.Submit(button_text='Count', size=(5, 1)), sg.Button('Quit', size=(5, 1))],
[sg.Button('Delete', size=(5, 1)), sg.Button('Save', size=(5, 1))]
]
Ich habe es so gemacht. Dann sieht es so aus.
Ist es nicht ganz intuitiv zu schreiben?
Grob gesagt,
-- Text () `` `zeigt den Textbereich in einer Zeile an --`` `Multiline ()` `` zeigt einen mehrzeiligen Textbereich an --`` `Submit ()` `` zeigt die Schaltfläche an --
Button () `` zeigt den Button an
size=()
Hier können Sie die Größe des Elements angeben. 1=Es kann mit einem Zeichen gezählt werden, also in meinem Fallmultiline(), size=(70, 30)
Dann ist die Größe des TextbereichsVertikal 70 Zeichen x horizontal 30 ZeichenEs ist so eingestellt.
Um ehrlich zu sein, verstehe ich den Unterschied zwischen "Submit ()" und "Button ()" nicht wirklich, aber diesmal funktioniert es gut, also lasse ich es so wie es ist ...
Wenn das Layout fertig ist, legt der Rest die Bewegung fest, wenn die Taste gedrückt wird. Lassen Sie uns vorher das erstellte Layout anzeigen.
wordcounter.py
import PySimpleGUI as sg
import re
sg.theme('DarkAmber')
layout = [
[sg.Text('Word Counter')],
[sg.Multiline((), size=(70, 30))],
[sg.Submit(button_text='Count', size=(5, 1)), sg.Button('Quit', size=(5, 1))],
[sg.Button('Delete', size=(5, 1)), sg.Button('Save', size=(5, 1))]
]
window = sg.Window('Word Counter', layout)
#Kürzung
window.close()
Ich fügte hinzu
window = sg.Window('Word Counter', layout)
Wann
window.close()
ist. Der Rest des Programms wird zwischen den beiden geschrieben.
while
Ich werde es mit einer Erklärung umsetzen.
wordcounter.py
#Kürzung
while True:
event, values = window.read()
if event is None:
print('No words')
break
if event == 'Count':
show_message = len(values[0]) - 1
print(show_message)
sg.popup('Result', show_message)
if event == 'Quit':
break
if event == 'Delete':
sg.PopupYesNo('Are you really?')
if 'Yes':
values[0] = re.sub()
Nachfolgend werden `` `if``` und das Folgende einzeln beschrieben.
if event is None:
print('No words')
break
Beschreibt die Bewegung, wenn die x-Taste gedrückt wird.
if event == 'Count':
show_message = len(values[0]) - 1
print(show_message)
sg.popup('Result', show_message)
Dies ist die Hauptsache. Stellen Sie sicher, dass Sie den Wert des Textbereichs der Variablen `show_message``` zuweisen, die von` `len ()`
gezählt wird. In PySimpleGUI scheinen die in das Textfeld oder den Bereich eingegebenen Werte durch `values []`
erhalten zu werden. Es scheint einen anderen Weg zu geben.
len(values[0]) - 1
Der Grund dafür ist, dass nach mehrmaliger Überprüfung aus irgendeinem Grund eine Nummer mehr ausgegeben wird als die Anzahl der im Text eingegebenen Zeichen.-Der Buchschwanz wird mit 1 eingestellt. Warum? Wie auch immer, ich bin froh, dass es funktioniert, weil es funktioniert. Wenn Sie eine bessere Schreibweise kennen, lassen Sie es uns bitte wissen.
if event == 'Quit':
break
Wie es ist. Drücken Sie `` `Beenden```, um das Programm zu beenden.
if event == 'Delete':
sg.PopupYesNo('Are you really?')
if 'Yes':
values[0] = re.sub()
Ich habe dies noch nicht implementiert, aber ich möchte alle Zeichenfolgen im Textbereich löschen, wenn ich `` `Löschen``` drücke ... aber es funktioniert nicht. Ich denke, ich werde einen regulären Ausdruck verwenden, um es zu löschen, aber ich denke, es gibt einen besseren Weg ... aber ich kann nicht daran denken und es so lassen, wie es ist. Nun, es ist in Ordnung, wenn Sie diese Funktion nicht haben, aber ich möchte sie noch komfortabler machen ... Bitte helfen Sie jedem, der sie kennt.
Dies vervollständigt das Tool mit den gewünschten Funktionen.
Unten ist der Quellcode.
wordcounter.py
import PySimpleGUI as sg
import re
sg.theme('DarkAmber')
layout = [
[sg.Text('Word Counter')],
[sg.Multiline((), size=(70, 30))],
[sg.Submit(button_text='Count', size=(5, 1)), sg.Button('Quit', size=(5, 1))],
[sg.Button('Delete', size=(5, 1)), sg.Button('Save', size=(5, 1))]
]
window = sg.Window('Word Counter', layout)
while True:
event, values = window.read()
if event is None:
print('No words')
break
if event == 'Count':
show_message = len(values[0]) - 1
print(show_message)
sg.popup('Result', show_message)
if event == 'Quit':
break
if event == 'Delete':
sg.PopupYesNo('Are you really?')
if 'Yes':
values[0] = re.sub()
window.close()
Auf diese Weise konnte ich einen Zeichenzähler erstellen. Es gibt viele ähnliche Tools, ohne Code schreiben zu müssen, aber es wäre interessant, einen Spaß daran zu haben, ein eigenes Tool zu erstellen, nicht wahr? Ich bin ziemlich daran gebunden und benutze es relativ (lacht) Es unterstützt weder die Speicherfunktion noch die Ausgabe und ist ein Ersatz, der lediglich zum Kopieren und Einfügen der Zeichenfolge und zum Bestimmen der Anzahl der Zeichen verwendet wird. Ich denke, es wird bequemer sein, wenn verschiedene andere Funktionen hinzugefügt werden. Vielen Dank, dass Sie so weit gelesen haben.
Wenn Sie Tkinter verwenden, versuchen Sie es mit PySimpleGUI Ich habe die Python-GUI-Bibliothek "PySimpleGUI" berührt PySimpleGUI PySimpleGUI Cookbook Einführung in My Boom PySimple GUI Grundlegende Verwendung der PySimple-Benutzeroberfläche
Recommended Posts