- Оригинальный адрес ссылки на блог
-
Python
Предоставляет библиотеку нескольких графических интерфейсов разработки, несколько часто используемыхPython GUI
Библиотека выглядит следующим образом: -
Tkinter
:Tkinter
модуль (Tk интерфейс) естьPython
Интерфейс к стандартному набору инструментов Tk GUI.Tk
иTkinter
доступны в большинствеUnix
Используется под платформой, его также можно использовать вWindows
иMacintosh
в системе.Tk8.0
Последующие версии могут добиться локального стиля окна и хорошо работать в большинстве платформ. -
wxPython
:wxPython
это программное обеспечение с открытым исходным кодомPython
Отличный набор языковGUI
Графическая библиотека, позволяющаяPython
Программистам легко создавать полноценные, функциональныеGUI
Пользовательский интерфейс. -
Jython
:Jython
программа может бытьJava
Бесшовная интеграция. Помимо некоторых стандартных модулей,Jython
использоватьJava
модуль.Jython
почти стандартныйPython
не зависит отC
语言的全部模块。 Например,Jython
Пользовательский интерфейс будет использоватьсяSwing
,AWT
илиSWT
.Jython
может быть скомпилирован динамически или статически вJava
байт-код
один.Tkinter
вводить
-
Tkinter
даPython
стандартGUI
библиотека.Python
использоватьTkinter
можно быстро создатьGUI
применение. - так как
Tkinter
встроен вpython
в установочном пакете просто установитеPython
тогдаimport Tkinter
библиотека иIDLE
также использоватьTkinter
написанный, для простого графического интерфейсаTkinter
все еще управляемый
требует внимания:Python3.x
Библиотека, используемая версией, называетсяtkinter
, инициалыT
нижний регистр
import tkinter
- Создать программу с графическим интерфейсом
- 1. Импорт
tkinter
модуль - 2. Создание элементов управления
- 3, указать этот элемент управления
master
, т.е. какому управлению принадлежит это управление - 4. Расскажите
GM(geometry manager)
Создан элемент управления
- 1. Импорт
1. Главное окно
- существует
iOS
КаждыйAPP
иметь главное окноwindow
, Долженwindow
Это самый простой вид из всех видов подземелья рта.View
- существует
Python
У китайских детских стишков также будет главное окно, смотрите нижеtkinter
Как создать главное окно
# 主窗口
import tkinter
# 创建主窗口
window = tkinter.Tk()
# 设置标题
window.title('Titanjun')
# 设置窗口大小
window.geometry('400x400')
# 进入消息循环
window.mainloop()
Эффект следующий
Главное окно имеет следующий метод, кроме вышеуказанного метода
# 框体大小的可调性, 分别表示x, y方向的可变性
window.resizable(0, 0)
# 退出
window.quit()
# 刷新页面
window.update()
два.Tkinter
компоненты
-
Tkinter
предоставляет различные элементы управления, такие как кнопки, метки и текстовые поля,GUI
используемые в приложениях, эти элементы управления часто называют элементами управления или виджетами. - В настоящее время существует 15 виджетов Tkinter, ниже приводится краткое введение в эти виджеты.
контролирует | описывать |
---|---|
Label |
Элемент управления Label, который может отображать текст и растровые изображения. |
Button |
Кнопочное управление, которое отображает кнопку в программе |
Entry |
Элемент управления вводом; используется для отображения простого текстового содержимого |
Checkbutton |
Элемент управления несколькими полями выбора; используется для предоставления нескольких полей выбора в программе. |
Frame |
Frame control; отображает прямоугольную область на экране, в основном используемую в качестве контейнера |
Canvas |
Canvas Control; отображение текста или графических элементов, таких как линии |
Listbox |
Элемент управления списком; вListbox Виджет используется для отображения списка строк пользователю |
Menubutton |
Управление кнопкой меню, так как пункты меню отображаются. |
Menu |
Управление меню; отображает строки меню, раскрывающиеся и всплывающие меню. |
Message |
Управление сообщениями; используется для отображения нескольких строк текста сlabel похожий |
Radiobutton |
Управление радиокнопкой; отображает состояние радиокнопки |
Scale |
Контроль диапазона; отображает числовую шкалу, числовой интервал, который определяет диапазон для вывода |
Scrollbar |
Полоса прокрутки, используемая, когда содержимое выходит за пределы визуальной области, например поле со списком. |
Text |
Текстовый элемент управления; используется для отображения нескольких строк текста |
Spinbox |
элементы управления вводом; иEntry Аналогично, но можно указать значение диапазона ввода |
PanedWindow |
Плагин для управления расположением окон, который может содержать один или несколько дочерних элементов управления. |
LabelFrame |
Простой контроль контейнера, обычно используемый с комплексным макетом окна |
tkMessageBox |
Окно сообщения для отображения вашего приложения |
Если вы уже занимались разработкой внешнего интерфейса H5 или разработкой страниц, например iOS, вы должны быть в состоянии добраться туда.На самом деле, эти компоненты аналогичны компонентам, предоставляемым другими языками разработки, и их свойства аналогичны. сначала взгляните на некоторые общие свойства.
значение атрибута | Описание недвижимости |
---|---|
bg |
цвет фона элемента управления |
fg |
цвет шрифта в компоненте |
font |
Установите стиль шрифта и размер текста |
height |
установить контрольную высоту |
width |
Установите ширину элемента управления |
bd |
Установите размер границы элемента управления, по умолчанию 2 пикселя. |
relief |
Установите стиль границы: неровный, утопленный, приподнятый, канавка, ребро, по умолчанию плоский |
text |
установить текстовое содержимое |
anchor |
Прицеливание, управление положением текста, центр по умолчанию (опционально: n север, восток восток, s юг, w запад, центр, ne se, sw, nw) |
justify |
При отображении нескольких строк текста установите выравнивание между разными строками (слева, справа, по центру) |
wraplength |
Ограничьте количество символов, отображаемых в строке элемента управления, в зависимости от ширины |
underline |
Подчеркивание, не по умолчанию; значением является подчеркнутый индекс строки, когда он равен 0, первый символ подчеркивается |
padx |
Заполнение в направлении оси X относится к расстоянию между содержимым элемента управления и краем элемента управления. |
pady |
Заполнение в направлении оси Y |
1. Label
контролирует
-
Label
Элемент управления используется для отображения текста и изображений. -
Label
Часто используется для представления информации, а не для взаимодействия с пользователем. -
Label
Вы также можете привязать такие события, как клики, но обычно это не используется.
label = tkinter.Label(window,
text="我是一只小鸭子",
bg='#999999',
fg='white',
font=('黑体', 13),
justify='center',
height=5,
width=30,
anchor='n',
# wraplength=30
underline=3,
bd=3,
relief='flat'
)
#显示出来
label.pack()
эффект отображения
Знакомство с некоторыми свойствами
-
anchor
: Отображаемое положение текста в пространстве (сверху на север вниз на юг, слева на запад справа на восток), необязательные значения: (n северо-восток восток s юг w запад центр ne северо-запад se юго-восток sw юго-запад nw северо-восток) направление -
image
: отображаемое изображение
2. Button
контролирует
-
Button
Управление является стандартнымTkinter
Виджеты для различных кнопок, некоторые действия могут быть запущены при нажатии кнопки мышью -
Button
Может отображать текст и изображения - Кнопки могут отображать текст только одним шрифтом, а текст может занимать несколько строк.
# 设置标题
window.title('Titanjun')
# 设置窗口大小
window.geometry('400x400')
# 创建按钮
button1 = tkinter.Button(window,
text='按钮1',
bg='orange',
height=3,
width=20,
bd=3,
relief='sunken',
activebackground='orange',
activeforeground='white',
command=action1
)
button1.pack()
button2 = tkinter.Button(window, text='Titanjun', height=3, command=window.quit())
button2.pack()
# 进入消息循环
window.mainloop()
Стиль эффекта
Знакомство с некоторыми свойствами
-
activebackground
: цвет фона кнопки при наведении мыши. -
activeforeground
: цвет текста кнопки при наведении мыши. -
highlightcolor
: выделение цветом -
image
: изображение для отображения на кнопке -
state
: Установить состояние компонента кнопки, необязательно (обычное (по умолчанию), активное, отключенное). -
command
: Метод привязки кнопки принимает имя функции, обратите внимание на имя функции без кавычек.
3. Entry
входить
элементы управления вводом для отображения простого текстового содержимого иiOS
серединаUITextField
то же самое, пример следующий
vari = tkinter.Variable()
entry = tkinter.Entry(window, textvariable=vari)
entry.pack()
# 设置值
vari.set('very good')
# 取值
print(vari.get())
print(entry.get())
# 只读输入框
vari2 = tkinter.Variable()
entry2 = tkinter.Entry(window, textvariable=vari2, state='disabled')
entry2.pack()
# 设置值
vari2.set('very bad')
print(vari2.get())
# 密码输入框, 无论输入什么都显示密文
vari3 = tkinter.Variable()
entry3 = tkinter.Entry(window, textvariable=vari3, show='@', bg='red', fg='white')
entry3.pack()
Стиль эффекта
Слушайте изменения в тексте в поле ввода
- Здесь нам нужно установить следующие три параметра
-
validate
: Установите состояние прослушивания поля ввода.-
focus
:когдаEntry
Проверять, когда компонент получает или теряет фокус -
focusin
: когдаEntry
Проверить, когда компонент получает фокус -
focusout
: когдаEntry
Проверять, когда компонент теряет фокус -
key
: проверить, когда поле ввода редактируется -
all
: Подтвердить при возникновении любого из вышеуказанных условий
-
-
validatecommand
: принимает функцию, которая оценивает, соответствует ли текст в поле ввода требованиям, функция может возвращать только True или False, чтобы указать результат проверки -
invalidcommand
: указанную функцию можно использовать только вvalidatecommand
Возвращаемое значениеFalse
называется, когда
# 主窗口
import tkinter
# 验证输入的文字
def varileText():
text = entry4.get()
if text == '1':
print('对喽')
return True
print('错漏')
return False
#
def testInvaild():
print('invaildCommanf被调用')
return True
# 创建主窗口
window = tkinter.Tk()
# 设置标题
window.title('Titanjun')
# 设置窗口大小
window.geometry('400x400')
# 验证输入的内容是否符合要求
vari4 = tkinter.Variable()
entry4 = tkinter.Entry(window, textvariable=vari4, validate='key', validatecommand=varileText, invalidcommand=testInvaild)
entry4.pack()
# 进入消息循环
window.mainloop()
4. Text
многострочный текст
-
Text
Текстовые компоненты используются для отображения и обработки многострочного текста. - существует
Tkinter
всех компонентов,Text
Компонент чрезвычайно мощный и гибкий, подходит для многозадачности - при создании
Text
В компоненте нет содержимого. Чтобы вставить в него контент, вы можете использоватьinsert()
а такжеINSERT
илиEND
Номер индекса
4-1. Вставьте текст/элемент управления/изображение
text = Text(window, bg='yellow', width=40, height=10)
#INSERT索引表示在光标处插入
text.insert(INSERT,'I Love')
#END索引号表示在最后插入
text.insert(END,' you')
text.pack()
def show():
print('好了, 你赢了')
# text还可以插入按钮 图片等
b1 = Button(text, text='点我点我', command=show)
# 在text创建组件的命令
text.window_create(INSERT, window=b1)
4-2.Значение индекса
-
Indexes
(индекс) используется для указания наText
Положение текста в компоненте, за которым следуетpython
Индекс последовательности такой же, как,Text
Индекс компонента также соответствует положению между фактическими символами - Стоит отметить, что: номера строк начинаются с 1, а номера столбцов начинаются с 0
- Например: 2.4 означает символ в строке 2 и столбце 4.
from tkinter import *
root = Tk()
text1=Text(root,width=30,height=3)
text1.insert(INSERT,'index的练习')
#1.2到1.5的范围之间
print(text1.get(1.2,1.5))
4-3 Теги в тексте
Tags
Обычно используется для изменения стиля и функции содержимого в компоненте «Текст». Кроме того, вы можете изменить шрифт, размер и цвет текста.Tags
Также позволяет ассоциировать текст, встроенные компоненты и изображения с клавиатурой, в дополнение кuser-defined tags
(Определяемые пользователемTags
)
text.insert(INSERT, '自定义标签的名字')
#第一个参数为自定义标签的名字
#第二个参数为设置的起始位置,第三个参数为结束位置
#第四个参数为另一个位置
text.tag_add('tag1', '1.7', '1.12', '1.14')
#用tag_config函数来设置标签的属性(这里不要用简写, 否则报错)
text.tag_config('tag1', font=17, background='blue', foreground='red')
# text.tag_config('tag1', bg='yellow', fg='red')
#新的tag会覆盖旧的tag
4-4.С полосой прокрутки
text = Text(window, bg='yellow', width=100, height=10)
# 添加右侧滚动条
scroll = Scrollbar()
# side放到窗体的那一侧 fill填充
scroll.pack(side=RIGHT, fill=Y)
text.pack(side=RIGHT, fill=Y)
# 两者关联
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)
str = '''致橡树--舒婷
..........此处省略N个字...........
'''
text.insert(INSERT, str)
Стиль эффекта
5. Кнопка множественного выбора с флажком
-
Checkbutton
Можно представить два состояния:On
иOff
, вы можете установить функцию обратного вызова, которая вызывается всякий раз, когда нажимается кнопка - Вот пример: выберите разные флажки, будут отображаться разные тексты.
def update():
message = ''
if tag1.get() == True:
message += 'titan \n'
if tag2.get() == True:
message += 'jun \n'
if tag3.get() == True:
message += 'coder \n'
#清除text中的所有内容
text.delete(0.0, END)
# 插入新的文本内容
text.insert(INSERT, message)
# 要绑定的变量
tag1 = BooleanVar()
check1 = Checkbutton(window, text = 'Titan', variable = tag1, command = update)
check1.pack()
tag2 = BooleanVar()
check2 = Checkbutton(window, text = 'Juned', variable = tag2, command = update)
check2.pack()
tag3 = BooleanVar()
check3 = Checkbutton(window, text = 'Coder', variable = tag3, command = update)
check3.pack()
text = Text(window, bg = 'orange', width = 50, height = 5)
text.pack()
Стиль эффекта
6. Радиокнопка радиокнопка
Radiobutton
Это радиокнопка, то есть в одной группе может быть выбрана только одна кнопка. Всякий раз, когда выбрана кнопка в группе, другие кнопки автоматически изменяются в невыбранное состояние. Отличие от других элементов управления заключается в том, что он имеет концепцию группы.
def selectorAction():
print(tag.get())
# 一组单选框要绑定同一个变量
tag = IntVar()
radio1 = Radiobutton(window, text = 'one', value = 23, variable = tag, command = selectorAction)
radio1.pack()
radio2 = Radiobutton(window, text = 'two', value = 32, variable = tag, command = selectorAction)
radio2.pack()
radio3 = Radiobutton(window, text = 'ten', value = 10, variable = tag, command = selectorAction)
radio3.pack()
Стиль эффекта
Продолжение следует, введение других элементов управления будет обновляться на более позднем этапе .......