'''
GUI:Graphical User Interface(图形用户界面)
by tkinter realizing
date:2021-8-14
writer:Thor
reference from:
'''
#1-1:引用库,版本查询
import tkinter

print(tkinter.TkVersion)


#1-2:建立窗口,及基本框架
root=tkinter.Tk()#root为自定义的Tk对象名称

root.mainloop()#放在程序最后一行


#1-3:窗口设置相关方法:
'''
title() 设置窗口的标题
geometry('widthxheight+x+y') 设置窗口宽width和高height,单位是像素pixel,设置窗口位置
maxsize(width,height)     拖拽是可以设置窗口最大的宽(width)和高(height)
minsize(width,height)     拖拽时可以设置窗口最小的宽(width)和高(height)
congigure(bg='color')     设置窗口的的背景颜色
resizable(True,True)     设置是否更改窗口大小,第一个参数时宽,第二个参数是高,如:固定宽和高,用resizeable(0,0)
state('zoomed')     最大化窗口
iconify()     最小化窗口
iconbitmap('xx.ico')    更改默认窗口图标
'''
from tkinter import*
root=Tk()

root.title('Mywindow')
root.geometry('800x600+200+200')#窗口大小为800*600,距离屏幕左上角(200,200)
root.configure(bg='black')
root.iconbitmap(r'C:\Users\DELL\Desktop\e4.ico')
root.iconify()

root.mainloop()



#1-4:the widget(控件) of tkinter
'''
(l)Button(按钮)
(2) Canvas(画布):可参考第19章。
(3) Checkbutton(多选按钮):可参考7-2节。
(4) Entry(文本框):可参考第5章。
(5) Fra1ne(框架):可参考8-1节。
(6) Label(标签):可参考第2章。
(7) Labe1Frame(标签框架):可参考8-2节。
(8) Listbox(列表框):可参考第12章。
(9) Menu(菜单):可参考第16章。
(1O)MenuButton(菜单按钮):这个是过时的控件,已经被Menu()取代。
(11)Message(消息):可参考10-1节。
(l2)0ptionMenu(下拉式菜单):可参考第13-1节。
(l3)PanedWindow(面板):可参考第14-1节。
(14)Radiobutton(单选按钮)
(15)Scale(尺寸)
(l6)Scrollbar(滚动条):可参考12-8节。
(l7)Spinbox(可微调输入控件):可参考9-2节。
(l8)Text(文字区域):可参考第17章。
(l9)Toplevel(上层窗口):可参考8-3节。
注:在tkinter中所有widget都是面向对象的类,我们通过调用构造方法来达到建立相关widget控件的目的
-------------------------------------------------------------------------------------
加强版的tkinter模块(tkinter.ttk):
(l)Combobox: 可参考第13-2节
(2) Notebook: 可参考第 14-2 节。
(3) Progressbar: 可参考第 15 章。
(4) Separator: 可参考 2-1 6 节。
(5) Sizegrip: 可以拖曳最上层窗口右下方更改最上层窗口的大小。
(6) Treeview: 可参考第 18 章。
导入上述模块可以使用下列方式。
from tkinter import ttk
-------------------------------------------------------------------------------------
Widget的共同属性:
Dimensions: 大小
Colors: 颜色
Fonts: 字形
Anchor: 锚(位置参考点)
Relief styles: 属性外框
Bitinaps: 显示位图
Cursors: 鼠标外形
-------------------------------------------------------------------------------------
Widget的共同方法:
设计控件时会看到下列常用的共同方法。
1. Configuration(结构)
config(option=value): Widget属性可以在建立时设置,也可以在程序执行时使用config()重新设置
cget(" option"):取得option参数值
keys(): 可以用此方法获得所有该Widget 的参数

2. Event Processing(事件进程)
mainloop() : 让程序继续执行, 同时进入等待与处理窗口事件
quit( ) : Python Shell窗口结束, 但是所建窗口继续执行
update() : 更新窗口画面

3. Event callbacks(事件回调函数)
(1) bind(event,callback): 事件绑定, 相关应用可参考11-2节。
(2) unbind(event): 解除绑定, 相关应用可参考11-3节。

4. Alarm handlers(警告处理)
after (time,callback): 间隔指定时间后调用callback ()方法,
'''