Introduction To Tkinter
Introduction To Tkinter
Introduction to Tkinter
In this part of the Tkinter tutorial, we introduce the Tkinter toolkit and create our first programs.
Buong gabi,
Maybahay, kantutin ko 12 oras walang tigil!
Garantisado: buong gabi ligaya 1satin.ru
The purpose of this tutorial is to get you started with the Tkinter toolkit. Images used in this tutoria
can be downloaded here. I used some icons from the Tango icons pack of the Gnome project.
Tkinter
Tkinter is a Python binding to the Tk GUI toolkit. Tk is the original GUI library for the Tcl language.
Tkinter is implemented as a Python wrapper around a complete Tcl interpreter embedded in the
Python interpreter. There are several other popular Python GUI toolkits. Most popular are
wxPython, PyQt, and PyGTK.
Python
Python is a general-purpose, dynamic, object-oriented programming language.
The design purpose of the Python language emphasizes programmer
productivity and code readability. Python was initially developed by Guido van
Rossum. It was first released in 1991. Python was inspired by ABC, Haskell, Java
Lisp, Icon, and Perl programming languages. Python is a high-level, general-
purpose, multiplatform, interpreted language. Python is a minimalistic languag
One of its most visible features is that it does not use semicolons nor brackets; Python uses
indentation instead. There are two main branches of Python currently: Python 2.x and Python 3.x.
Python 3.x breaks backward compatibility with previous releases of Python. It was created to
correct some design flaws of the language and make the language more clean. This tutorial is
written in Python 2.x. Most of the code is written in Python 2.x versions. It will take some time till
the software base and programmers will migrate to Python 3.x. Today, Python is maintained by a
large group of volunteers worldwide. Python is open source software.
Python programming language supports several programming styles. It does not force a
programmer to a specific paradigm. Python supports object oriented and procedural programming
There is also a limited support for functional programming.
The official web site for the Python programming language is python.org
Pillow
Pillow is a Python library for for opening, manipulating, and saving many different image file
formats. Some of the examples in this tutorial use Pillow.
On systems using RPM package format, we use the above command to install Pillow.
Simple example
In our first example, we will show a basic window on the screen.
simple.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("Simple")
self.pack(fill=BOTH, expand=1)
def main():
root = Tk()
root.geometry("250x150+300+300")
app = Example()
root.mainloop()
if __name__ == '__main__':
main()
While this code is very small, the application window can do quite a lot. It can be resized,
maximized, or minimized. All the complexity that comes with it has been hidden from the
application programmer.
Here we import Tk and Frame classes, and BOTH constant. Tk class is used to create a root window.
Frame is a container for other widgets.
class Example(Frame):
def __init__(self):
super().__init__()
Our example class inherits from the Frame container widget. In the __init__() constructor method
we call the constructor of our inherited class.
self.initUI()
self.master.title("Simple")
We set the title of the window using the title() method. The master attribute gives access to the roo
window (Tk).
self.pack(fill=BOTH, expand=1)
The pack() method is one of the three geometry managers in Tkinter. It organizes widgets into
horizontal and vertical boxes. Here we put the Frame widget, accessed via the self attribute to the T
root window. It is expanded in both directions. In other words, it takes the whole client space of the
root window.
root = Tk()
The root window is created. The root window is a main application window in our programs. It has
a title bar and borders. These are provided by the window manager. It must be created before any
other widgets.
root.geometry("250x150+300+300")
The geometry() method sets a size for the window and positions it on the screen. The first two
parameters are the width and height of the window. The last two parameters are x and y screen
coordinates.
app = Example()
root.mainloop()
Finally, we enter the mainloop. The event handling starts from this point. The mainloop receives
events from the window system and dispatches them to the application widgets. It is terminated
when we click on the close button of the titlebar or call the quit() method.
Centering window
This script centers a window on the screen.
center.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
This script centers a small
window on the screen.
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("Centered window")
self.pack(fill=BOTH, expand=1)
self.centerWindow()
def centerWindow(self):
w = 290
h = 150
sw = self.master.winfo_screenwidth()
sh = self.master.winfo_screenheight()
x = (sw - w)/2
y = (sh - h)/2
self.master.geometry('%dx%d+%d+%d' % (w, h, x, y))
def main():
root = Tk()
ex = Example()
root.mainloop()
if __name__ == '__main__':
main()
We need to have the size of the window and the size of the screen to position the window in the
center of the monitor screen.
w = 290
h = 150
These are the width and height values of the application window.
sw = self.master.winfo_screenwidth()
sh = self.master.winfo_screenheight()
x = (sw - w)/2
y = (sh - h)/2
Finally, the geometry() method is used to place the window in the center of the screen.
Quit button
In the last example of this chapter, we create an application that has a quit button. When we press
the button, the application terminates.
quitbutton.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode Tkinter tutorial
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.style = Style()
self.style.theme_use("default")
self.master.title("Quit button")
self.pack(fill=BOTH, expand=1)
def main():
root = Tk()
root.geometry("250x150+300+300")
app = Example()
root.mainloop()
if __name__ == '__main__':
main()
We position a Button on the window. Clicking on the button will terminate the application.
Tkinter supports theming of widgets. Widgets that are themed can be imported from the ttk modul
At the time of this writing, not all widgets are themable. For instance, menus or listboxes are not
supported so far.
self.style = Style()
self.style.theme_use("default")
We apply a theme for our widgets. Some of the supported themes are clam, default, alt, or classic.
We create an instance of the Button widget. The parent of this button is the Frame container. We
provide a label for the button and a command. The command specifies a method that is called whe
we press the button. In our case the quit() method is called, which terminates the application.
quitButton.place(x=50, y=50)
We use the place geometry manager to position the button in absolute coordinates—50x50 px from
the top-left corner of the window.
Figure: Quit button
Buong gabi,
Maybahay, kantutin ko 12 oras walang tigil!
Garantisado: buong gabi ligaya 1satin.ru