IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python】【 tkinter】基础控件到简单bind,了解tkinter一篇就够,没人敢说更全更易懂【内容较多,陆续更新】 -> 正文阅读

[Python知识库]【Python】【 tkinter】基础控件到简单bind,了解tkinter一篇就够,没人敢说更全更易懂【内容较多,陆续更新】

【Python tkinter】基础控件到简单bind,了解tkinter一篇就够

讲了什么:Python tkinter 可视化界面编辑库

2022/1/27 First Update 14947字/390行

1.主页面设置

(1) 实例化

import tkinter as tk

window=tk.Tk()  # 实例化
window.title("tkinter 基础")
#              长x宽+左侧边距+上侧边距
window.geometry("300x200+400+200")

(2) 设置属性 window.attributes()

 # This subcommand returns or sets platform specific attributes <__int__.py>

alpha (double) 透明度

window.attributes("-alpha",0.4)

在这里插入图片描述

transparentcolor (color) 面板中有该颜色的透明

window.attributes("-transparentcolor","red") 
canvas1 = tk.Canvas(window,bg="red", width=100, height=100)
canvas1.pack()  # 效果画板为红色画板区域透明
canvas2 = tk.Canvas(window,bg="yellow", width=100, height=100)
canvas2.pack()  # 效果画板为不为红色画板区域不透明

在这里插入图片描述

disabled (bool) 锁定界面

# 无法移动窗口,点击按钮
def com(*args): # 此方法必须留一个参数
    print(1)
tk.Button(window,text="按钮",command=com).pack()
window.attributes("-disabled",True)  # False 不锁定

自己写出来试试

fullscreen (bool) 满屏

window.attributes("-fullscreen",True)

自己写出来试试

toolwindow (bool) 工具窗口

window.attributes("-toolwindow",True)

在这里插入图片描述

topmost (bool) 置顶

window.attributes("-topmost",True)
panel = tk.Toplevel(window)
panel.geometry("200x200")

在这里插入图片描述

(3) focus 聚焦设置

focus_set() ,focus_force()

panel = tk.Toplevel(window)
panel.geometry("200x200")
def com(*args):
    window.focus_set()
    window.focus_force()
tk.Button(panel,text="按钮",command=com).pack()  # 点击按钮主窗口显示在最顶层

点击按钮主窗口显示在最顶层

focus_get()

panel = tk.Toplevel(window)
panel.geometry("200x200")
def com(*args):
    window.focus_set()
    window.focus_force()
    a=window.focus_get()
    print(a)
def com1(*args):
    panel.focus_set()
    panel.focus_force()
    a=panel.focus_get()
    print(a)
tk.Button(panel,text="按钮1",command=com).pack()  # 点击按钮1主界面置顶并打印.
tk.Button(panel,text="按钮2",command=com1).pack()  # 点击按钮2子界面置顶并打印.!toplevel

在这里插入图片描述

(4) 界面运行

window.mainloop()
# 原理 循环自调 程序中断
# 在这一句后面的代码运行时无法运行
    def mainloop(self, n=0):
        """Call the mainloop of Tk."""
        self.tk.mainloop(n)

1.控件介绍

综述

控件描述
Button按钮控件;在程序中显示按钮
Canvas画布控件;显示图形元素如线条或文本
Checkbutton多选框控件;用于在程序中提供多项选择框
Entry输入控件;用于显示简单的文本内容
Frame框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label标签控件;可以显示文本和位图
Listbox列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton菜单按钮控件,用于显示菜单项。
Menu菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message消息控件;用来显示多行文本,与label比较类似
Radiobutton单选按钮控件;显示一个单选的按钮状态
Scale范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar滚动条控件,当内容超过可视化区域时使用,如列表框
Text文本控件;用于显示多行文本
Treeview表格
Toplevel容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow窗口布局管理的插件;可以包含一个或者多个子控件
LabelFrame简单的容器控件;常用与复杂的窗口布局
tkMessageBox用于显示你应用程序的消息框

上述表格借鉴 菜鸟编程

基础参数 ( 基 本 汇 总 ) _{(基本汇总)} ()?

常见参数

参数名那些控件包含
backgroundPanedWindow,Label,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
borderwidthPanedWindow,Label,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
cursorPanedWindow,Label,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
heightPanedWindow,Label,Button,Listbox,Canvas,Checkbutton,Frame,Radiobutton,Text,Toplevel,LabelFrame
reliefPanedWindow,Label,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
activebackgroundLabel,Button,Checkbutton,Radiobutton,Scale,Scrollbar,Spinbox
fontLabel,Button,Listbox,Checkbutton,Entry,Radiobutton,Scale,Text,Spinbox,LabelFrame
foregroundLabel,Listbox,Checkbutton,Entry,Radiobutton,Scale,Text,Spinbox,LabelFrame
highlightbackgroundLabel,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
highlightcolorLabel,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
highlightthicknessLabel,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
takefocusLabel,Button,Listbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
widthLabel,Listbox,Button,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Text,Toplevel,Spinbox,LabelFrame
bd=borderwidthListbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Toplevel
bg=backgroundListbox,Canvas,Checkbutton,Entry,Frame,Radiobutton,Scale,Scrollbar,Toplevel

较常见参数

参数名那些控件包含
disabledforegroundLabel,Button,Checkbutton,Radiobutton,Spinbox
commandCheckbutton,Radiobutton,Scale,Scrollbar,Spinbox,Button
justifyLabel,Button,Checkbutton,Entry,Radiobutton,Spinbox
padxLabel,Button,Checkbutton,Radiobutton,Text,LabelFrame
padyLabel,Button,Checkbutton,Radiobutton,Text,LabelFrame
textLabel,Button,Checkbutton,Radiobutton,LabelFrame
textvariableLabel,Button,Checkbutton,Entry,Radiobutton,Spinbox
fg=foregroundListbox,Checkbutton,Entry,Radiobutton,Scale
underlineLabel,Button,Checkbutton,Radiobutton
selectbackgroundListbox,Canvas,Entry,Text,Spinbox
selectborderwidthListbox,Canvas,Entry,Text,Spinbox
selectforegroundListbox,Canvas,Entry,Text,Spinbox
xscrollcommandListbox,Canvas,Entry,Text,Spinbox
anchorLabel,Button,Checkbutton,Radiobutton
bitmapLabel,Button,Checkbutton,Radiobutton
imageLabel,Button,Checkbutton,Radiobutton
wraplengthLabel,Checkbutton,Radiobutton
repeatdelayButton,Scale,Scrollbar,Spinbox
repeatintervalButton,Scale,Scrollbar,Spinbox
exportselectionListbox,Entry,Text,Spinbox
insertbackgroundCanvas,Entry,Text,Spinbox
insertborderwidthCanvas,Entry,Text,Spinbox
insertofftimeCanvas,Entry,Text,Spinbox
insertontimeCanvas,Entry,Text,Spinbox
insertwidthCanvas,Entry,Text,Spinbox
classFrame,Toplevel,LabelFrame
colormapFrame,Toplevel,LabelFrame
containerFrame,Toplevel,LabelFrame
visualFrame,Toplevel,LabelFrame
yscrollcommandListbox,Canvas,Text

个别参数

控件控件包含
PanedWindowwidthhandlepad,handlesize,opaqueresize,sashcursor,sashpad,sashrelief,sashwidth,showhandle
Buttonforegroundhighlightbackground,wraplength,compound,default,overrelief
Listboxselectmode,setgrid,listvariable
Textsetgrid,autoseparators,maxundo,spacing1,spacing2,spacing3,tabs,undo,wrap
Canvascloseenough,confine,offset,scrollregion,xscrollincrement,yscrollincrement
Checkbuttonoffvalue,indicatoron,onvalue,selectcolor,selectimage
Radiobuttonindicatoron,selectcolor,selectimage,value
Entryinvcmd,show,invalidcommand,validate,validatecommand,vcmd
Spinboxinvalidcommand,validate,from,label,to,wrap,buttonbackground,buttoncursor,buttondownrelief,buttonuprelief,disabledbackground,format,increment,readonlybackground,validatecommandvalues
Scalebigincrement,digits,from,label,length,resolution,showvalue,sliderlength,sliderrelief,tickinterval,to,troughcolor
Scrollbaractiverelief,troughcolor,elementborderwidth,jump
Toplevelmenu,screen,use
LabelFramelabelanchor,labelwidget

详细解释(建议点目录)

使用方法

# 控件自定义标志 = tk.控件(依附在谁上面,参数名="...")
Label = tk.Label(window,text="Hello World!")

background 背景颜色=bg

borderwidth 按钮边框的大小 默 认 为 2 个 像 素 _{默认为 2 个像素} 2?

cursor 鼠标形状

取图自 不离鞘
arrow,circle,clock,cross,dotbox,exchange,fleur,
heart,man,mouse,pirate,plus,shuttle,sizing,
spider,spraycan,star,target,tcross,trek,watch

在这里插入图片描述

height 控件的高度

注意:Listbox等列表控件的height是列表有几行而不是px(像素)

relief 边框样式

设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
在这里插入图片描述

activebackground 当鼠标按压时,按钮的背景色

Button=tk.Button(window,text="按钮",activebackground="green")
Button.pack()

在这里插入图片描述

font 文本字体

支持字体

挺全的: by 南风丶轻语

样式

bold(粗体) 默认值为normal
italic(斜体) 默认值为roman
underline(下划线) 默认值为false
overstrike(删除线)) 默认值为false

# 代码原创
# Label=tk.Label(master,text='string',font=('字体','字号','样式'))
yangshi=["bold","italic","underline","overstrike"]
for i in range(len(yangshi)):
    string = str(yangshi[0:i+1]).replace("[","").replace("]","")
    label = tk.Label(window, text="样例",font=("华文新魏",30,eval(string)))
    label.grid(row=i,column=0)

运行效果

foreground 字体颜色

Button=tk.Button(window,text="按钮",foreground="red")
Button.pack()

运行效果

HighLight

by 火鸟网络.

# 代码原创
Frame=tk.Frame(
    window,
    width = 100,
    height = 100,
    bg="yellow",
    highlightbackground="blue",
    highlightcolor="red",
    highlightthickness=4
)
def com(*args):
    Frame.focus_set()
    Frame.focus_force()
    a=Frame.focus_get()
    print(a)
Button=tk.Button(Frame,text="按钮",command=com).pack()
Frame.pack()
Frame1=tk.Frame(
    window,
    width = 100,
    height = 100,
    bg="yellow",
    highlightbackground="blue",
    highlightcolor="red",
    highlightthickness=4
)
Frame1.pack()
def com1(*args):
    Frame1.focus_set()
    Frame1.focus_force()
    a=Frame1.focus_get()
    print(a)
Button1=tk.Button(Frame1,text="按钮",command=com1).pack()
# 按按钮1时按钮1所在的Frame高亮变红
# 按按钮2时按钮2所在的Frame高亮变红
highlightbackground 高亮边框的颜色
  1. 指定当控件没有获得焦点的时候高亮边框的颜色
  2. 默认值由系统指定,通常是标准背景颜色
highlightcolor 高亮边框的颜色
  1. 指定当控件获得焦点的时候高亮边框的颜色
  2. 默认值由系统指定
highlightthickness 边框的宽度
  1. 指定高亮边框的宽度
  2. 默认值是 0(不带高亮边框)
    在这里插入图片描述

takefocus 如果为真,用户可以使用tab键移动到这个小部件

disabledforeground 控件被禁用时的文字颜色

控件被禁用时,文字颜色的使用。如果省略或空白,前景是用来代替标准

# 代码原创
def com1(*args):
    Button1.config(state='normal')
def com2(*args):
    Button1.config(state='disabled')
Button1=tk.Button(window,text="按钮1",fg="red",disabledforeground="blue")
Button1.pack()
Button2=tk.Button(window,text="禁用",command=com2)
Button2.pack()
Button3=tk.Button(window,text="激活",command=com1)
Button3.pack()

在这里插入图片描述

command 按下按钮时调用的函数或方法

回调函数可以是函数、绑定方法,或者任何其他可调用的Python对象 【实例如上】

justify 显示多行文本的时候,设置不同行之间的对齐方式

可选项包括left, right, center

def com(*args):
    Text1.config(justify="right")
def com1(*args):
    Text1.config(justify="center")
def com2(*args):
    Text1.config(justify="left")
Text1=tk.Button(window,text="多行文本\n多行多行文本\n多行多行多行文本\n多多行行文本\n多行文本",width=30,height=5)
Text1.pack()
Button1=tk.Button(window,text="右对齐",command=com)
Button1.pack()
Button2=tk.Button(window,text="左对齐",command=com2)
Button2.pack()
Button3=tk.Button(window,text="居中对齐",command=com1)
Button3.pack()

运行效果

padx 文本或图像和边框之间的额外水平填充

pady 文本或图像和边框之间的额外垂直填充

x=10
y=10
Button1=tk.Button(window,text="按钮",padx=x,pady=y)
Button1.pack()
def xadd(*args):
    global x
    x=x+1
    Button1.config(padx=x)
def yadd(*args):
    global y
    y=y+1
    Button1.config(pady=y)
Button2=tk.Button(window,text="变胖",command=xadd)
Button2.pack()
Button3=tk.Button(window,text="变高",command=yadd)
Button3.pack()

在这里插入图片描述

textvariable 文案变量

通常是一个StringVar。如果变量被更改,按钮文本将被更新。

num=0
text=tk.StringVar()
Lable=tk.Label(window,textvariable=text,width=8,height=2)
Lable.pack()
text.set("你好")
def click(*args):
    global num
    num+=1
    text.set(f"点击了{num}次")
Button=tk.Button(window,text="点击",command=click)
Button.pack()
window.mainloop()

在这里插入图片描述

selectbackground 选择背景色

selectborderwidth 选择边框宽度

selectforeground 选择文本颜色

ListBox=tk.Listbox(
    window,width=10,height=7,
    selectbackground="yellow",
    selectborderwidth=4,
    selectforeground="green")
for k in range(7):
    ListBox.insert("end",f"条目({k})")
ListBox.pack()

在这里插入图片描述

引用

python3内置的tkinter参数释疑 by wozijisun
python中Tkinter的鼠标样式cursor(带图示)by 不离鞘
python tkinter 基本使用 by 火鸟网络
Python GUI编程(Tkinter)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:52:10  更:2022-01-28 11:53:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:49:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码