基于tkinter中ttk控件的width-height设置方式
作者:iSH_ 发布时间:2023-07-04 21:32:20
ttk控件的width-height设置
tkinter中窗口,框架容器,控件如果不设置宽度高度,则会根据其中的内容自动设置宽度高度
框架容器设置了宽度高度,如果其内存在控件,则宽度高度失效,自动适应控件大小
如果窗口,框架容器,控件中没有内容,宽度和高度为默认的最小尺寸(可能看不到)
顶级窗口
顶级窗口:高度宽度,单位像素点
import tkinter as tk
from tkinter import ttk
win = tk.Tk()
win1 = tk.Toplevel()
win.geometry('600x600') #设置顶级窗口宽度高度,单位像素点
win1.geometry('600x600') #设置顶级窗口宽度高度,单位像素点
#笔记本屏幕分辨率如果是1366x768,那么geometry('1366x768')铺满整个屏幕(当然不建议)
框架容器
Frame,LabelFrame,PanedWindow:高度宽度,单位像素点
win = tk.Tk()
win.title("TTK_GUI")
win.geometry("600x600+10+10")
s = ttk.Style()
s.configure('1.TFrame',background='DarkGray')
frame1 = ttk.Frame(win,width=500,height=100,style='1.TFrame')
frame1.pack(pady=10)
s.configure('2.TLabelframe')
labelframe1 = ttk.LabelFrame(win,text='labelframe1',width=500,height=100,
style='2.TLabelframe')
labelframe1.pack(pady=10)
s.configure('2.TPanedwindow',background='DarkGray')
panedwindow1 = ttk.PanedWindow(win,width=500,height=100,
style='2.TPanedwindow')
panedwindow1.pack(pady=10)
控件-Label
内容为文本,宽度单位:字符单位;内容为图片,显示原始大小,忽略宽度设置;
内容为图文混合(【图片宽度-像素点】小于【width值-字符单位】),宽度单位:字符单位,
图片尺寸过大则宽度设置失效
import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont
s = ttk.Style()
image1 = tk.PhotoImage(file="001.png") #PhotoImage支持gif,png格式
ft1 = tkFont.Font(family='Consolas',size=10,weight='bold')
s.configure('1.TLabel',font=ft1,background='DarkGray',foreground='red',
width=40,anchor='center',justify='left',padding=[2,0,2,0])
label1 = ttk.Label(win,text='第一行文字word \nThis is second
row',style='1.TLabel')
label1.pack()
label2 = ttk.Label(win,text='标签23',image=image1,compound='center',style='1.TLabel')
label2.pack(pady=2)
#anchor='center',justify='left' # 整体居中,多行文本左对齐
控件-Button类
Button,Checkbutton,Radiobutton,Menubutton:
内容为文本,宽度单位:字符单位;内容为图片,显示原始大小,忽略宽度设置;
内容为图文混合(【图片宽度-像素点】小于【width值-字符单位】),宽度单位:字符单位,
图片尺寸过大则宽度设置失效
ft1 = tkFont.Font(family='Consolas',size=10,weight='bold')
image1 = tk.PhotoImage(file="001.png") #PhotoImage支持gif,png格式
s.configure('1.TButton',foreground='blue',justify='center',width=40,font=ft1)
b1 = ttk.Button(win,text='按钮',style='1.TButton')
b1.pack(pady=2)
b2 = ttk.Button(win,text='按钮',image=image1,compound='center',style='1.TButton')
b2.pack(pady=2)
b3 = ttk.Button(win,image=image1)
b3.pack(pady=2)
#忽略宽度高度设置,自动显示原始大小图片,
#若图片尺寸超过button父控件宽度高度,只显示部分图片
控件-Entry
Entry:内容文本,宽度单位:字符单位 ,average-size characters of the widget's font
s.configure('1.TEntry',padding=[2,0,2,0])
e1 = ttk.Entry(win,textvariable=etxt,foreground='red',width=40,font=ft1,
justify='center',style='1.TEntry')
e1.pack(pady=2)
控件-Combobox
width设置长度,宽度单位:average-size characters of the widget's font;高度单位:行
val1=[1,2,3,4]
s.configure('1.TCombobox',padding=[-5,0,-5,0])
cc1 = ttk.Combobox(win,width=40,height=3,values=val1,style='1.TCombobox')
cc1.pack(pady=2)
控件-Spinbox
width设置长度,宽度单位:average-size characters of the widget's font;
val2=['AVC','x264','345f','FRD6hy']
sp1 = ttk.Spinbox(win,values=val2,width=39,
foreground='red',justify='center',font=ft1)
sp1.pack(pady=2)
控件-Scale
length设置长度,单位像素点
ttk中Scale属性(无showvalue,resolution,label),可用性不如tk,建议不要使用ttk.Scale
控件-Progressbar
length设置长度,单位像素点
prbar = ttk.Progressbar(win,length=300)
prbar.pack(pady=2)
控件-Notebook
宽度,高度,单位像素点
labelframe1 = ttk.LabelFrame(win,text='labelframe1',width=500,height=100)
labelframe1.pack(pady=2)
tabControl = ttk.Notebook(labelframe1,width=300,height=80)
tabControl.pack(expand=1,fill='both')
tab1 = ttk.Frame(tabControl)
tabControl.add(tab1,text='Tab 1')
tab2 = ttk.Frame(tabControl)
tabControl.add(tab2,text='Tab 2')
控件-Scrollbar
无长度宽度设置,在pack(fill='x')或pack(fill='y')
来源:https://blog.csdn.net/qq_35981895/article/details/107311844
猜你喜欢
- 这样的问题是因为 数据库字符集,表字符集,字段字符集都设为:gbk_chinese_ci 注意数据库连接串里面的 Stmt=Set Name
- 各位大家好!很荣幸能在这里和大家聊聊!(*^__^*) 嘻嘻……此处省略488字,切入正题。关于网页设计这个行业,在中国来讲这个行业并不成熟
- 1、灵活运用样式熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也
- 啥都不说了,直接奉献原代码 代码如下:'==========注意==================================
- 网上广泛流传的取 object 的绝对位置的做法是:var getAbsPos = function(pTar
- 困扰我很久问题终于在昨天被解决了。其实问题很简单<% =now %>老是显示12小时制,总是出现上午、下午。这个问题虽然很小,但
- 简介Github:https://github.com/spf13/cobraStar:26.5KCobra是一个用Go语言实现的命令行工具
- 核心提示:VB读取MP3文件帧的信息比特率,采样频率,播放时间Private Sub Command1_Click()On Error Go
- 代码'########### '检测远程文件是否存在 '########### function CheckURL(
- 方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从
- 这主要是因为杀毒软件将一些asp关键词当作木马特征,记录保存着,所以遇到有这个关键词,就会禁止运行或删除。解决的方法是将这些关键词给拆开。把
- 刚开始时,这个表的字段很少(10个以内),前开发者把这个表的所有存储过程与触发器以及表函数全是写死了。用户每添加一些字段,都需要手动去更改这
- asp使用fso对象遍历目录及目录下的文件代码:<%@ Language=VBScript %><%&
- 操作系统:Windows2000,IIS5出现症状:使用ASPJPEG时执行Server.CreateObject("Persit
- 语法: ROW_NUMBER() OVER([ <partition_by_clause>] <order_by_clau
- 目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策: 一、判断一个IP在一定时间内对本站页面的访问次数,如果明显超过
- 网页上的图片如果设置了alt属性,当鼠标移经时就会有tooltip出现,但是只能显示一行文本,有时需要多行文本,乃至图片来显示图片、链接或者
- 大家知道,在js里encodeURIComponent 方法是一个比较常用的编码方法,但因工作需要,在asp里需用到此方法,查了好多资料,没
- 1.apache配置文件中打开vhost的配置LoadModule vhost_alias_module modules/mod_vhost
- 数据库查询优化的实用技巧:本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。技巧一:问题类型:ACCESS数据