初学tkinter,听说ttk是对控件的优化。
写了一个demo测试了一下,发现加ttk的和原来的一模一样,没有发现什么区别。
是不是我的用法有问题?请各位大佬指教。
我的环境是win10。
[Python] 纯文本查看 复制代码 from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
class start_gui(Tk):
def __init__(self, parent):
self.parent = parent
def set_window(self):
w = self.parent
# ===== 窗口属性 =====
# 设置主窗口标题
w.title("测试")
# 设置窗口大小
winWidth = 800
winHeight = 600
# 获取屏幕分辨率
screenWidth = w.winfo_screenwidth()
screenHeight = w.winfo_screenheight()
x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)
# 设置窗口初始位置在屏幕居中
w.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
# ===== 渲染元素 =====
# 创建内容容器
content = Frame(w, padding=(30, 20, 30, 20))
# 标题
lb_title = Label(content, text='选择一个文件')
lb_title.grid(column=0, row=0)
# 选择文件
lb_select_file = Label(content, text='数据源')
lb_select_file.grid(column=0, row=1, sticky=(E, W))
en_select_file = Entry(content)
en_select_file.grid(column=1, row=1, sticky=(E, W))
bt_select_file = Button(content, text='选择文件')
bt_select_file.grid(column=2, row=1)
# 测试ttk控件
ttk_lb_select_file = ttk.Label(content, text='数据源ttk')
ttk_lb_select_file.grid(column=0, row=2, sticky=(E, W))
ttk_en_select_file = ttk.Entry(content)
ttk_en_select_file.grid(column=1, row=2, sticky=(E, W))
ttk_bt_select_file = ttk.Button(content, text='选择文件ttk')
ttk_bt_select_file.grid(column=2, row=2)
# 渲染容器
content.grid(column=0, row=0, sticky=(N, S, E, W))
# 主容器尺寸自适应
w.columnconfigure(0, weight=1)
w.rowconfigure(0, weight=1)
# 容器尺寸自适应
content.columnconfigure(0, weight=1)
content.columnconfigure(1, weight=3)
content.columnconfigure(2, weight=1)
def action():
root = Tk()
window = start_gui(root)
window.set_window()
root.mainloop()
if __name__ == '__main__':
action()
|