用Tkinter打造GUI开发工具(4) Tkinter的Tk主窗口

用Tkinter打造GUI开发工具(4) Tkinter的Tk主窗口
通过前面学习,我们知道了建立Tk主窗口,是为了更好地管理Tkinter程序。Tk()对象root通过Wm给我们提供了操作管理Tkinter窗口的方法,通过Misc类提供了操作管理小部件的方法。因此使用Tkinter开发程序首先需要建立Tk()主窗口。
Python3中使用 Tkinter的使用流程如下。
1)导入Tkinter模块。

import  tkinter  as  tk   #导入Tkinter模块,仅用于Python3

2)创建Tkinter主窗口。

root =tk.Tk()

3)在主窗口上创建控件,例如Label标签等。

label =tk.Label(root,text = '窗口内容在此')

4)在主窗口上放置控件,放置方法可选pack()、 grid()、 place()等放置方法。

label.pack()

5)进入主循环。Tkinter一般只有执行mainloop()方法才能运行,才能创建窗口。前面我们也学习了Misc类,可以使用update()方法,在主循环启动前,执行Tkinter程序的一些操作。但是执行完毕,Tkinter程序就停止了。只有mainloop()方法才会使Tkinter程序循环操作,这时才会接收Tkinter的动作,例如事件处理,鼠标或键盘处理操作,按钮点击动作操作等等。

root.mainloop()

下面介绍Tk主窗口的一些方法。
1.获取屏幕和窗口信息
我们可以用下面方法获取屏幕和窗口信息,主要指像素大小。

screenwidth = root.winfo_screenwidth()  #获取屏幕宽度(单位:像素)
screenheight = root.winfo_screenheight()  #获取屏幕高度(单位:像素)
win_width = root.winfo_width()   #获取窗口宽度(单位:像素)
win_height = root.winfo_height()  #获取窗口高度(单位:像素)
x=root.winfo_x()   #获取窗口x坐标(单位:像素)
y=root.winfo_y()   #获取窗口y坐标(单位:像素)

2.设置窗口方法
设置窗口方法主要是改变窗口标题、大小、位置、状态等操作方法。
1)设置窗口标题
Tkinter主窗口对象root包含很多窗口操作的方法。我们可以使用Wm类方法,也可以使用Tkinter中定义的操作方法,Tkinter中定义的操作方法不包含字符“wm_”。

root.wm_title('窗口标题')  #Wm类设置窗口标题方法
root.title('窗口标题')  #Tkinter中设置窗口标题方法

后面我们主要介绍Tkinter为我们提供的操作方法。
2)设置窗口长宽和窗口的位置
Tkinter为我们改变窗口大小和放置在屏幕位置的操作方法。root.geometry()可以根据输入的屏幕宽高,坐标来改变Tkinter窗口的位置和大小。root.geometry()需要以字符串的方式提供参数。格式如root.geometry(‘300x200+150+250’),参数含义为屏幕宽度300,高度200,x坐标150,y坐标250。其中不能有变量或其它字符,因此我们可以用字符串格式’{}x{}+{}+{}’.format(width,height, x, y)来输入整型变量参数(width,height, x, y)。

width=300  #把窗口宽度(单位:像素)300赋值给变量width
height=200  #把窗口高度(单位:像素)300赋值给变量height
x,y=150,250  #给屏幕坐标(x,y)赋值(100,200)
root.geometry('{}x{}+{}+{}'.format(width,height, x, y))  #改变窗口位置和大小

如果仅仅想改变窗口的大小,可以用格式root.geometry(‘600x500),或者用字符串格式’{}x{}’.format(width,height)。

width=300  #把窗口宽度(单位:像素)300赋值给变量width
height=200  #把窗口高度(单位:像素)300赋值给变量height
root.geometry('{}x{}'.format(width,height))  #改变窗口大小

3)设置窗口的新图标
Tkinter的方法root.iconbitmap(bitmap)可以设置新的窗口图标,参数bitmap是包含路径的ico文件名。

root.iconbitmap(‘tt.ico’)

4)窗口的其它操作
Tkinter还提供有很多关于窗口的操作方法,我们这里给出常用的窗口操作方法。
(1)设置最顶层窗口
Tkinter窗口的root. attributes(’-topmost’,1)方法,把窗口设置为顶层窗口。即总是在最顶层显示窗口,覆盖了其它窗口。这个属性主要针对Windows系统平台。

root. attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。
root. attributes('-topmost',0)  #参数0,正常窗口,允许其它窗口覆盖。

(2)设置工具栏样式窗口
Tkinter窗口的root.attributes("-toolwindow", 1)方法,可以把窗口设置为工具栏样式窗口,窗口顶栏没有了最大化和最小化按钮,只有关闭窗口的按钮。

root.attributes("-toolwindow", 1)  #参数1,设置工具栏样式窗口。
                             #参数1,没有最大化和最小化的按钮。
root.attributes("-toolwindow", 0)  #参数0,设置为普通窗口。

下面看一个Tkinter窗口设置工具栏样式窗口示例。

import  tkinter  as  tk   #导入Tkinter模块,仅用于Python3
root =tk.Tk()  #建立Tkinter主窗口root
root.geometry('{}x{}+{}+{}'.format(200,100, 250, 350)) #改变窗口位置和大小
root.iconbitmap(bitmap='tt.ico')  #设置窗口新图标
root. title('窗口标题')  #Tkinter中设置窗口标题方法
root.attributes("-toolwindow", 1)  #参数1,设置工具栏样式窗口。
root. attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。
root.mainloop()  #Tkinter的mainloop()方法

程序运行会产生下图的一个窗口。
在这里插入图片描述

(3)隐藏窗口标题栏
Tkinter窗口的root.overrideredirect(True)方法,可以隐藏窗口标题栏。即不显示窗口标题和最大化、最小化、关闭按钮。root.overrideredirect(False)恢复显示窗口标题栏。
使用中请谨慎,没有关闭按钮,Tkinter窗口和程序没法关闭。

root.overrideredirect(True)  #参数True,隐藏窗口标题栏。
root.overrideredirect(False)  #参数False,恢复显示窗口标题栏。

(4)窗口最大化和最小化
Tkinter窗口的root.state()方法,仅用于Windows系统。
root.state(“zoomed”)方法,使窗口最大化。
root.state(“iconic”)方法,使窗口隐藏,只在Windows系统程序栏显示程序图标,相当于窗口最小化。
root.state(“normal”)方法,使窗口还原为普通状态。

root.state("zoomed")  #窗口最大化。
root.state("iconic")   #隐藏窗口,相当于窗口最小化。
root.state("normal")  #设置为普通窗口。

(5)设置全屏窗口
Tkinter窗口的root.attributes("-fullscreen", True)方法,可以把窗口设置为全屏窗口。
root.attributes("-fullscreen", False)方法,取消全屏窗口,还原为普通窗口。
看来用Tkinter开发图形游戏也不错,在全屏状态下,用Windows热键“Alt+F4”关闭这个全屏的Tkinter窗口。

root.attributes("-fullscreen", True)  #设置全屏窗口,没有Windows屏幕了。
root.attributes("-fullscreen", False)  #取消全屏窗口,还原为普通窗口。

(6)设置窗口透明度
Tkinter窗口的root.attributes("-alpha",n)方法可以设置窗口的透明度。透明度参数n从0到1之间,1是不透明,0是全透明。

root.attributes("-alpha",0.8)   #设置窗口的透明度0.8

本系列是我正在编写的书籍暂定书名<Python3下Tkinter高级编程>,内容都来自这个书中一些章节。大家可以学习,不要抄袭发表。
<Python3下Tkinter高级编程>的大致目录如下。有兴趣参与编写的朋友可以加我QQ:2775205。
我的手机:18578755056

Python3下Tkinter高级编程_目录
00.1 前言
第一章 Tkinter介绍
1.1 Tkinter介绍
1.2 Tkinter工作原理
1.3 Tkinter类的构成
1.4 Tkinter的窗口类
1.4.1 Tk类
1.4.2 Toplevel类
1.5 Tkinter的小部件类

第二章 Tkinter开发
2.1 Tk主窗口
2.2 Toplevel弹出窗口
2.3 Menu主菜单
2.4 Menu弹出菜单
2.5 Pack
2.6 Place
2.7 Grid
2.8 Label
2.9 Button
2.10 Entry
2.11 Menubutton
2.12 Checkbutton
2.13 Radiobutton
2.14 Scale
2.15 Frame
2.16 LabelFrame
2.17 Spinbox
2.18 Text
2.19 Listbox
2.20 Canvas
2.21 PanedWindow
2.22 Message

第三章 Tkinter.ttk开发
3.1 ttk.Style
3.2 ttk.Button
3.3 ttk.Checkbutton
3.4 ttk.Entry
3.5 ttk.Combobox
3.6 ttk.Frame
3.7 ttk.Label
3.8 ttk.Labelframe
3.9 ttk.Menubutton
3.10 ttk.Notebook
3.11 ttk.Panedwindow
3.12 ttk.Progressbar
3.13 ttk.Radiobutton
3.14 ttk.Scale
3.15 ttk.Scrollbar
3.16 ttk.Separator
3.17 ttk.Sizegrip
3.18 ttk.Spinbox
3.19 ttk.Treeview
3.20 ttk.LabeledScale
3.21 ttk.OptionMenu

第四章 Tkinter.tix开发
4.1 tix.Tk
4.2 tix.Form
4.3 tix.DisplayStyle
4.4 tix.Balloon
4.5 tix.ButtonBox
4.6 tix.ComboBox
4.7 tix.Control
4.8 tix.DirList
4.9 tix.DirTree
4.10 tix.DirSelectBox
4.11 tix.ExFileSelectBox
4.12 tix.DirSelectDialog
4.13 tix.ExFileSelectDialog
4.14 tix.FileSelectBox
4.15 tix.FileSelectDialog
4.16 tix.FileEntry
4.17 tix.HList
4.18 tix.InputOnly
4.19 tix.LabelEntry
4.20 tix.LabelFrame
4.21 tix.ListNoteBook
4.22 tix.Meter
4.23 tix.NoteBook
4.24 tix.OptionMenu
4.25 tix.PanedWindow
4.26 tix.PopupMenu
4.27 tix.ResizeHandle
4.28 tix.ScrolledHList
4.29 tix.ScrolledListBox
4.30 tix.ScrolledText
4.31 tix.ScrolledTList
4.32 tix.ScrolledWindow
4.33 tix.Select
4.34 tix.Shell
4.35 tix.DialogShell
4.36 tix.StdButtonBox
4.37 tix.TList
4.38 tix.Tree
4.39 tix.CheckList
4.40 tix.Grid
4.42 tix.ScrolledGrid

第五章 Tkinter高级开发
5.1 在Tk窗口中使用OpenGL图形
5.2 在Tk窗口中显示matplotlib.pyplot图形
5.3 在Tk窗口中显示OpenCV图形
5.4 Tkinter的二次开发

第六章 Tkinter可视化开发工具设计

发布了56 篇原创文章 · 获赞 67 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/88411547