翼度科技»论坛 编程开发 python 查看内容

基于tkinter中ttk控件的width-height设置方式

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
ttk控件的width-height设置

tkinter中窗口,框架容器,控件如果不设置宽度高度,则会根据其中的内容自动设置宽度高度
框架容器设置了宽度高度,如果其内存在控件,则宽度高度失效,自动适应控件大小
如果窗口,框架容器,控件中没有内容,宽度和高度为默认的最小尺寸(可能看不到)

顶级窗口

顶级窗口:高度宽度,单位像素点
  1. import tkinter as tk
  2. from tkinter import ttk
  3. win = tk.Tk()
  4. win1 = tk.Toplevel()
  5. win.geometry('600x600') #设置顶级窗口宽度高度,单位像素点
  6. win1.geometry('600x600') #设置顶级窗口宽度高度,单位像素点
  7. #笔记本屏幕分辨率如果是1366x768,那么geometry('1366x768')铺满整个屏幕(当然不建议)
复制代码


框架容器

Frame,LabelFrame,PanedWindow:高度宽度,单位像素点
  1. win = tk.Tk()
  2. win.title("TTK_GUI")
  3. win.geometry("600x600+10+10")
  4. s = ttk.Style()
  5. s.configure('1.TFrame',background='DarkGray')
  6. frame1 = ttk.Frame(win,width=500,height=100,style='1.TFrame')
  7. frame1.pack(pady=10)
  8. s.configure('2.TLabelframe')
  9. labelframe1 = ttk.LabelFrame(win,text='labelframe1',width=500,height=100,
  10.                              style='2.TLabelframe')
  11. labelframe1.pack(pady=10)
  12. s.configure('2.TPanedwindow',background='DarkGray')
  13. panedwindow1 = ttk.PanedWindow(win,width=500,height=100,
  14.                                style='2.TPanedwindow')
  15. panedwindow1.pack(pady=10)
复制代码
控件-Label

内容为文本,宽度单位:字符单位;内容为图片,显示原始大小,忽略宽度设置;
内容为图文混合(【图片宽度-像素点】小于【width值-字符单位】),宽度单位:字符单位,
图片尺寸过大则宽度设置失效
  1. import tkinter as tk
  2. from tkinter import ttk
  3. import tkinter.font as tkFont
  4. s = ttk.Style()
  5. image1 = tk.PhotoImage(file="001.png") #PhotoImage支持gif,png格式
  6. ft1 = tkFont.Font(family='Consolas',size=10,weight='bold')
  7. s.configure('1.TLabel',font=ft1,background='DarkGray',foreground='red',
  8.             width=40,anchor='center',justify='left',padding=[2,0,2,0])
  9. label1 = ttk.Label(win,text='第一行文字word \nThis is second
  10.                    row',style='1.TLabel')
  11. label1.pack()
  12. label2 = ttk.Label(win,text='标签23',image=image1,compound='center',style='1.TLabel')
  13. label2.pack(pady=2)
  14. #anchor='center',justify='left' # 整体居中,多行文本左对齐
复制代码
控件-Button类

Button,Checkbutton,Radiobutton,Menubutton:
内容为文本,宽度单位:字符单位;内容为图片,显示原始大小,忽略宽度设置;
内容为图文混合(【图片宽度-像素点】小于【width值-字符单位】),宽度单位:字符单位,
图片尺寸过大则宽度设置失效
  1. ft1 = tkFont.Font(family='Consolas',size=10,weight='bold')
  2. image1 = tk.PhotoImage(file="001.png") #PhotoImage支持gif,png格式
  3. s.configure('1.TButton',foreground='blue',justify='center',width=40,font=ft1)
  4. b1 = ttk.Button(win,text='按钮',style='1.TButton')
  5. b1.pack(pady=2)
  6. b2 = ttk.Button(win,text='按钮',image=image1,compound='center',style='1.TButton')
  7. b2.pack(pady=2)
  8. b3 = ttk.Button(win,image=image1)
  9. b3.pack(pady=2)
  10. #忽略宽度高度设置,自动显示原始大小图片,
  11. #若图片尺寸超过button父控件宽度高度,只显示部分图片
复制代码
控件-Entry

Entry:内容文本,宽度单位:字符单位 ,average-size characters of the widget's font
  1. s.configure('1.TEntry',padding=[2,0,2,0])
  2. e1 = ttk.Entry(win,textvariable=etxt,foreground='red',width=40,font=ft1,
  3.                justify='center',style='1.TEntry')
  4. e1.pack(pady=2)
复制代码
控件-Combobox

width设置长度,宽度单位:average-size characters of the widget's font;高度单位:行
  1. val1=[1,2,3,4]
  2. s.configure('1.TCombobox',padding=[-5,0,-5,0])
  3. cc1 = ttk.Combobox(win,width=40,height=3,values=val1,style='1.TCombobox')
  4. cc1.pack(pady=2)
复制代码
控件-Spinbox

width设置长度,宽度单位:average-size characters of the widget's font
  1. val2=['AVC','x264','345f','FRD6hy']
  2. sp1 = ttk.Spinbox(win,values=val2,width=39,
  3.                   foreground='red',justify='center',font=ft1)
  4. sp1.pack(pady=2)
复制代码
控件-Scale

length设置长度,单位像素点
ttk中Scale属性(无showvalue,resolution,label),可用性不如tk,建议不要使用ttk.Scale

控件-Progressbar

length设置长度,单位像素点
  1. prbar = ttk.Progressbar(win,length=300)
  2. prbar.pack(pady=2)
复制代码
控件-Notebook

宽度,高度,单位像素点
  1. labelframe1 = ttk.LabelFrame(win,text='labelframe1',width=500,height=100)
  2. labelframe1.pack(pady=2)
  3. tabControl = ttk.Notebook(labelframe1,width=300,height=80)
  4. tabControl.pack(expand=1,fill='both')
  5. tab1 = ttk.Frame(tabControl)
  6. tabControl.add(tab1,text='Tab 1')
  7. tab2 = ttk.Frame(tabControl)
  8. tabControl.add(tab2,text='Tab 2')
复制代码
控件-Scrollbar

无长度宽度设置,在pack(fill='x')或pack(fill='y')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/article/283794.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具