Ich habe mit Python einen Zeichenzähler erstellt

Einführung

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)

Umgebung

Mac OS Catalina Python 3.7.6 PySimpleGUI 4.18.2

0. Inhaltsverzeichnis

  1. [Bibliothek](# 1-Bibliothek)
  2. [Erforderliche Funktionen](# 2-Erforderliche Funktionen)
  3. [Implementierung](# 3-Implementierung)
  4. [Quellcode](# 4-Quellcode)
  5. [Zusammenfassung](# 5-Zusammenfassung)
  6. [Referenzen](# 6-Referenzen)

1. Bibliothek

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.

2. Erforderliche Funktionen

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.

3. Implementierung

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

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.

image1

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. whileIch 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]) - 1Der 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.

4. Quellcode

Unten ist der Quellcode.

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()
Das ist alles. kurz. Trotzdem kann ich die minimal notwendigen Funktionen ausführen, so dass es persönlich sehr nützlich ist. Ich habe Automator auf meinem Mac verwendet, um den Anruf bis zu einem gewissen Grad zu automatisieren, und Alfred, um Befehle einzugeben und sie sofort zum Laufen zu bringen. Ich werde einen Artikel darüber schreiben, wenn ich eine Chance habe.

5. Zusammenfassung

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.

6. Referenzen

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