Документация по Python

Модуль tkinter

В: Документация по Python

Введение

Примеры

Минимальное приложение tkinter

tkinter представляет собой графический инструментарий , который предоставляет обертку вокруг библиотеки Tk / Tcl GUI и входит в Python. Следующий код создает новое окно с помощью tkinter и помещает текст в окне тела.

Примечание. В Python 2 заглавные буквы могут немного отличаться, см. Раздел «Примечания» ниже.

 import tkinter as tk

# GUI window is a subclass of the basic tkinter Frame object
class HelloWorldFrame(tk.Frame):
    def __init__(self, master):
        # Call superclass constructor
        tk.Frame.__init__(self, master)
        # Place frame into main window
        self.grid()
        # Create text box with "Hello World" text
        hello = tk.Label(self, text="Hello World! This label can hold strings!")
        # Place text box into frame
        hello.grid(row=0, column=0)

# Spawn window
if __name__ == "__main__":
    # Create main window object
    root = tk.Tk()
    # Set title of window
    root.title("Hello World!")
    # Instantiate HelloWorldFrame object
    hello_frame = HelloWorldFrame(root)
    # Start GUI
    hello_frame.mainloop() 

Менеджеры по геометрии

Tkinter имеет три механизма для управления геометрией: place , pack и grid .

place менеджер использует абсолютные координаты пикселя.

pack менеджер размещает виджеты в один из 4 -х сторон. Новые виджеты размещаются рядом с существующими виджетами.

grid менеджер размещает виджеты в сетку , похожую на динамически изменения размера таблицы.

Место

Наиболее распространенные ключевые аргументы для widget.place заключаются в следующем:

  • x , абсолютные координаты х виджета
  • y , абсолютное у-координаты виджета
  • height , абсолютная высота виджета
  • width , абсолютная ширина виджета

Пример кода , используя place :

 class PlaceExample(Frame):
    def __init__(self,master):
        Frame.__init__(self,master)
        self.grid()
        top_text=Label(master,text="This is on top at the origin")
        #top_text.pack()
        top_text.place(x=0,y=0,height=50,width=200)
        bottom_right_text=Label(master,text="This is at position 200,400")
        #top_text.pack()
        bottom_right_text.place(x=200,y=400,height=50,width=200)
# Spawn Window
if __name__=="__main__":
    root=Tk()
    place_frame=PlaceExample(root)
    place_frame.mainloop()
 

пак

widget.pack может принимать следующие именованные аргументы:

  • expand , или не заполнять оставленное родителю пространство
  • fill , следует ли расширить , чтобы заполнить все пространство (NONE ( по умолчанию), X, Y, или ОБА)
  • side , сторона паковать против (TOP ( по умолчанию), НИЖНИЙ, ЛЕВЫЙ или ПРАВЫЙ)

сетка

Наиболее часто используемые ключевые слова , аргументы widget.grid заключаются в следующем:

  • row , строка виджета ( по умолчанию наименьшее незанятым)
  • rowspan , количество colums виджета пролеты ( по умолчанию 1)
  • column , столбец виджета ( по умолчанию 0)
  • columnspan , число столбцов виджета пролеты ( по умолчанию 1)
  • sticky , где поместить виджет , если ячейка сетки больше , чем (комбинация N, NE, E, SE, S, SW, W, NW)

Строки и столбцы проиндексированы нулями. Строки увеличиваются при спуске, а столбцы - при движении вправо.

Пример кода с использованием grid :

 from tkinter import *

class GridExample(Frame):
    def __init__(self,master):
        Frame.__init__(self,master)
        self.grid()
        top_text=Label(self,text="This text appears on top left")
        top_text.grid() # Default position 0, 0
        bottom_text=Label(self,text="This text appears on bottom left")
        bottom_text.grid() # Default position 1, 0
        right_text=Label(self,text="This text appears on the right and spans both rows",
                         wraplength=100)
        # Position is 0,1
        # Rowspan means actual position is [0-1],1
        right_text.grid(row=0,column=1,rowspan=2)

# Spawn Window
if __name__=="__main__":
    root=Tk()
    grid_frame=GridExample(root)
    grid_frame.mainloop()

 

Никогда не смешивайте pack и grid в том же кадре! Это приведет к тупику приложения!

Синтаксис

Параметры

Примечания

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.