[Python] Versuchen Sie, Tkinters Leinwand zu verwenden

Einführung

Die Sprache Python verfügt über ein Toolkit namens "Tkinter", das standardmäßig Schnittstellen erstellt. Dieser Tkinter ist praktisch, da Sie eine einfache GUI erstellen können, ohne unnötig Plug-Ins hinzuzufügen, aber es gibt keine Erklärungsseite. Daher möchte ich die Teile, die ich recherchiert habe, nach Bedarf zusammenfassen.

Über Tkinter

Ich habe die Grundlagen in Versuchen Sie es mit Pythons Tkinter geschrieben. Wenn Sie also interessiert sind **, bitte. Ich werde es schreiben, damit ich es erstellen kann, ohne es zu lesen.

Versuchen Sie es mit Tkinter

So verwenden Sie Tkinter einfach. Weitere Informationen erhalten Sie selbst oder unter "Versuchen Sie es mit Pythons Tkinter".

Python


#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter

#
#GUI-Einstellungen
#
root = Tkinter.Tk()
root.title(u"Versuchen Sie es mit Tkinter's Canvas")
root.geometry("800x450")   #Fenstergröße (angegeben durch "Breite x Höhe")



#
#GUI-Ende
#
root.mainloop()

Versuchen Sie es mit Tkinter's Canvas

Die Hauptgeschichte beginnt hier. Ich werde es so schreiben, dass es mit der Basiskopie funktioniert, aber bitte haben Sie Verständnis dafür, dass ich die Grundlagen von Tkinter nicht so sehr ansprechen werde. Weitere Informationen erhalten Sie selbst oder unter "Versuchen Sie es mit Pythons Tkinter".

Canvas-Definition

Canvas wird wie andere Objekte von Tkinter (Schaltflächen, Einträge usw.) in der GUI-Verarbeitung geschrieben. Bitte beachten Sie das aktuelle Beispiel.

Python


#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter

#
#GUI-Einstellungen
#
root = Tkinter.Tk()
root.title(u"Versuchen Sie es mit Tkinter's Canvas")
root.geometry("800x450")

#Leinwandbereich
canvas = Tkinter.Canvas(root, width = 800, height = 450)

#Leinwand binden
canvas.place(x=0, y=0)


#
#GUI-Ende
#
root.mainloop()

Dadurch wurde eine 800px * 450px-Leinwand erstellt und bei (x, y) = (0,0) platziert.

Wie der Inhalt, canvas = Tkinter.Canvas(root, width = 800, height = 450) Canvas wird durch diesen Prozess erstellt canvas.place(x=0, y=0) Durch diesen Vorgang wird die Leinwand auf dem Bildschirm platziert.

Ich denke, es ist schwer damit zu verstehen canvas.create_rectangle(0, 0, 800, 450, fill = 'green', stipple = 'gray25') Ich werde einsetzen.

Python


#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter

#
#GUI-Einstellungen
#
root = Tkinter.Tk()
root.title(u"Versuchen Sie es mit Tkinter's Canvas")
root.geometry("800x450")

#Leinwandbereich
canvas = Tkinter.Canvas(root, width = 800, height = 450)#Leinwand erstellen
canvas.create_rectangle(0, 0, 800, 450, fill = 'green')#füllen

#Leinwand binden
canvas.place(x=0, y=0)#Platzierung der Leinwand


#
#GUI-Ende
#
root.mainloop()

Wenn Sie das obige Beispiel ausführen, sehen Sie ein Fenster mit einer Größe von 800 x 450 Pixel und ein grünes Quadrat, das den Bildschirm ausfüllt. スクリーンショット 2015-05-12 11.21.01.png

Ich fügte hinzu canvas.create_rectangle(0, 0, 800, 450, fill = 'green') In einer Zeile füllt dies den angegebenen Teil der Leinwand mit einer bestimmten Farbe.

Auf diese Weise schreibt der erstellte Canvas den Prozess auch vom Erstellungspunkt zum Bindungspunkt.

Dinge, die mit Canvas gezeichnet werden können

Details sind in Einführung in Easy Python / Tkinter beschrieben, aber hier ist auch ein Zitat.

Funktion Erläuterung
create_line() Gerade Linie (gefaltete Linie)
create_oval() Ellipse
create_arc() Bogen (Teil des Umfangs der Ellipse)
create_rectangle() Rechteck
create_polygon() Polygon
create_image() Bild
create_bitmap() Bitmap
create_text() String

Darüber hinaus werden einige häufig verwendete Optionen vorgestellt.

wird bearbeitet Erläuterung
fill =Farbe Farbe, um das Innere zu füllen
stipple =Bitmap Bitmap, die beim Füllen der Innenseite zu einem Muster wird
outline =Farbe Rahmenfarbe
width =Breite Rahmenbreite (Standard ist 1).0)

Objekte markieren (nach dem Zeichnen löschen)

Jedes Objekt hat ein "Tag". Wenn Sie dieses Tag angeben, können Sie es nach dem Zeichnen löschen.

Python


#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter

#
#GUI-Einstellungen
#
root = Tkinter.Tk()
root.title(u"Versuchen Sie es mit Tkinter's Canvas")
root.geometry("800x450")


#Wenn die Schaltfläche "Zeichnen" gedrückt wird
def draw(event):
	canvas.create_oval(10, 10, 140, 140, tag="oval")
	


#Wenn die Schaltfläche "Löschen" gedrückt wird
def erase(event):
	canvas.delete("oval")
	


#Leinwandbereich
canvas = Tkinter.Canvas(root, width = 800, height = 300)

#Zeichne einen Kreis
canvas.create_oval(10, 10, 140, 140, tag="oval")

#Leinwand binden
canvas.place(x=0, y=0)



#Schaltfläche "Zeichnen"
button_draw = Tkinter.Button(root, text=u'Zeichnen',width=15)
button_draw.bind("<Button-1>",draw)
button_draw.place(x=100,y=350)


#Schaltfläche "Löschen"
button_draw = Tkinter.Button(root, text=u'Löschen',width=15)
button_draw.bind("<Button-1>",erase)
button_draw.place(x=350,y=350)


#
#GUI-Ende
#
root.mainloop()

Wenn dies ausgeführt wird, wird das folgende Fenster erstellt. スクリーンショット 2015-05-13 21.03.32.png

Klicken Sie auf die Schaltfläche "Löschen", um den Kreis zu löschen, und klicken Sie auf die Schaltfläche "Zeichnen", um den Kreis neu zu zeichnen. In diesem Moment canvas.create_oval(10, 10, 140, 140, tag="oval") Wenn Sie also das Attribut "tag" für das Objekt angeben, das Sie wie "tag =" oval "" zeichnen, canvas.delete("oval") Sie können ein Objekt mit einem solchen Tag-Attribut löschen.

Das ist alles für jetzt.

Recommended Posts

[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Kubernetes Client -Python-
Versuchen Sie Python
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie es mit LevelDB mit Python (plyvel)
Versuchen Sie es mit der Aktions-API von Python argparse
Versuchen Sie es mit dem Python Cmd-Modul
Versuchen Sie es mit LeapMotion mit Python
Versuchen Sie es mit Amazon DynamoDB von Python
Versuchen Sie es mit Tkinter
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie es mit Docker-Py
Versuchen Sie eine Formel mit Σ mit Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Dialogflow (früher: API.AI) Verwenden Sie das Python SDK #dialogflow
Starten Sie Python
Versuchen Sie es mit Geopandas
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Python> try: / außer:
Versuchen Sie es mit Junos 'On-Box Python # 2 Commit Script
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Junos 'On-Box Python # 1 Op Script
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Scraping mit Python
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Versuchen Sie es mit dem Sammlungsmodul (ChainMap) von python3
Versuchen Sie es mit Tensorflow. ① Erstellen Sie eine Python-Umgebung und führen Sie Tensorflow ein
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Versuchen Sie es mit Python.
Bearbeiten Sie Redmine mit Python Redmine
Fibonacci-Sequenz mit Python
Python versuchen ~ außer ~ sonst
Versuchen Sie es mit virtualenv (virtualenvwrapper)
Datenbereinigung mit Python
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie Debian + Python 3.4 + django1.7 ……
Verwenden von Python # externen Paketen
Versuchen Sie es jetzt mit virtualenv
WiringPi-SPI-Kommunikation mit Python
Versuchen Sie gRPC in Python
Versuchen Sie es mit W & B.
Altersberechnung mit Python
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
Suchen Sie Twitter mit Python