建立 Tkinter 视窗
这篇教学会介绍如何开始使用 Python 的内建函数库 tkinter,并利用 tkinter 建立基本的应用程序视窗,以及介绍基本的视窗参数设定。
快速导览:
因为 Google Colab 不支援 tkinter,所以请使用本机环境 ( 参考:使用 Python 虚拟环境 ) 或使用 Anaconda Jupyter 进行实作 ( 参考:使用 Anaconda )。
建立 tkinter 视窗
tkinter 是 Python 的内建函数库,只要 import tkinter 就能使用,下方的程序码执行后,会使用 Tk() 方法建立 tkinter 视窗对象,接着使用 mainloop() 将其放在主循环中一直执行,直到用户关闭该视窗才会停止运作。
import tkinter as tk
root = tk.Tk() # 建立 tkinter 視窗物件
root.mainloop() # 放在主迴圈中
设定视窗标题、图示
使用 title 可以设定视窗标题,iconbitmap 设定视窗图示 ( Windows 限定,格式 .ico ),如果是 Mac 则可使用 tk.call 方法设定应用程序图示。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio') # 設定標題
root.iconbitmap('favicon.ico') # 設定 icon ( 格式限定 .ico )
# 如果是 Mac 使用下面這行,可以使用 gif 或 png
# root.tk.call('wm', 'iconphoto', root._w, tk.PhotoImage(file='icon.gif'))
root.mainloop()
设定视窗长宽与位置
使用 geometry 方法定义视窗的“尺寸和位置”,下方的程序码使用字串格式化的方法,将宽、高、左上座标提供给尺寸位置表达式,除了提供完整的尺寸与位置,也可以不提供尺寸、不提供位置或不提供尺寸位置,如果没有提供尺寸与位置,视窗则会使用默认值显示。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
width = 600
height = 400
left = 0
top = 0
root.geometry(f'{width}x{height}+{left}+{top}') # 定義視窗的尺寸和位置
root.mainloop()
如果要将视窗置中显示,可先运用 winfo_screenwidth() 和 winfo_screenheight() 方法取得电脑屏幕长宽尺寸,经过数学计算后,就能将视窗置中显示。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
window_width = root.winfo_screenwidth() # 取得螢幕寬度
window_height = root.winfo_screenheight() # 取得螢幕高度
width = 600
height = 400
left = int((window_width - width)/2) # 計算左上 x 座標
top = int((window_height - height)/2) # 計算左上 y 座標
root.geometry(f'{width}x{height}+{left}+{top}')
root.mainloop()
设定视窗最大宽度和高度
使用 minsize 方法可以设定视窗的“最小”长宽尺寸,使用 maxsize 则可以设定视窗的“最大”长宽尺寸。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.minsize(200, 200) # 設定視窗最小為 200x200
root.maxsize(500, 500) # 設定視窗最大為 500x500
root.mainloop()
设定视窗是否可缩放
使用 resizable 方法可以设定视窗是否可以缩放,resizable 包含两个参数,分别是 x 方向与 y 方向,设定 True 表示可以缩放,设定 False 表示不能缩放。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.resizable(False, False) # 設定 x 方向和 y 方向都不能縮放
root.mainloop()
设定视窗背景色
设定视窗 configure 里的 background,就能设定视窗的背景色,背景色可以使用十六进制的色码,也可以输入颜色的名称,例如红色 red、黑色 black...等。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.configure(background='#000') # 設定背景色黑色
root.mainloop()
微信扫码关注
抖音扫码关注