精华内容
下载资源
问答
  • Tkinter常用的几种组件 1. Label标签组件 2.Button按钮组件 3.Entry单行文本框组件和Text多行文本框组件 4.Listbox列表框组件 5.Radiobutton单选按钮组件 6.Checkbutton复选框组件 7.Menu菜单组件 8.对话框组件: ...
  • tkinter常用控件

    2020-02-26 16:17:40
    import tkinter as tk button.place(x=250, y=420, width=100, height=50) button.grid(row=0, column=0, rowspan=1, columnspan=1, padx=10, pady=10, ipadx=10, ipady=10) Button button = tk.Button(window, ...

    放置

    import tkinter as tk
    button.place(x=250, y=420, width=100, height=50)
    button.grid(row=0, column=0, rowspan=1, columnspan=1, padx=10, pady=10, ipadx=10, ipady=10)
    

    Button

    button = tk.Button(window, text="完成", command=self.finish)
    

    Label

    label = tk.Label(window, text="text")
    

    Entry

    entry = tk.Entry(window)
    text = entry.get()
    

    Text

    text = tk.Text(window)
    t = entry.get()
    

    Messagebox

    import tkinter.messagebox
    tkinter.messagebox.showwarning(title="警告", message="你的答案错误")
    tkinter.messagebox.showinfo(title="提示", message="答案正确")
    tkinter.messagebox.showerror(title="错误", message="出错啦!")  
    tkinter.messagebox.askyesno(title="询问", message="是否继续?")
    

    Photo

    from PIL import ImageTk, Image
    photo = ImageTk.PhotoImage(Image.open("0.jpg"))
    imgLabel = tk.Label(window, image=photo)
    

    Canvas

    canvas = tk.Canvas(window)
    

    Listbox

    listbox = tk.Listbox(window)
    
    展开全文
  • Python GUI之tkinter 常用组件

    万次阅读 多人点赞 2017-12-04 00:13:39
    tkinter中,每个组件都是一个类,创建某个组件其实就是将这个类实例化。在实例化的过程中,可以通过构造函数给组件设置一些属性,同时还必须给该组件指定一个父容器,意即该组件放置何处。最后,还需要给组件设置一...

    Python3 tkinter系列

    一、概述
    二、布局管理
    三、常用组件
    四、实战(一)
    五、实战(二)
    六、进阶 自定义控件
    推荐视频课程 tkinter从入门到实战

    tkinter中,每个组件都是一个类,创建某个组件其实就是将这个类实例化。在实例化的过程中,可以通过构造函数给组件设置一些属性,同时还必须给该组件指定一个父容器,意即该组件放置何处。最后,还需要给组件设置一个几何管理器(布局管理器),解决了放哪里的问题,还需要解决怎么放的问题,而布局管理器就是解决怎么放问题的,即设置子组件在父容器中的放置位置。

    Button

    一个简单的按钮,用来响应用户的一个点击操作。能够与一个Python函数关联,当按钮被按下时,自动调用该函数。

    b = Button ( master, option=value, ... )
    

    参数说明:

    • master: 代表承载该按钮的父容器.

    • options: 可选项,即该按钮的可设置的属性。这些选项可以用键 =值的形式设置,并以逗号分隔。

    from tkinter import *
    
    def onclick():
        print("onclick !!!")
    
    root = Tk()
    
    #实例化Button,使用command选项关联一个函数,点击按钮则执行该函数
    button = Button(root,text='这是一个按钮',fg='red',command=onclick)
    
    #设置pack布局方式
    button.pack()
    
    root.mainloop()
    

    运行效果
    这里写图片描述

    Button常用属性:

    属性取值说明
    text字符串按钮的文本内容
    activebackground当鼠标放上去时,按钮的背景色
    activeforeground当鼠标放上去时,按钮的前景色
    bd(bordwidth)单位为像素,默认值为2个像素按钮边框的大小
    bg(background)按钮的背景色
    command函数名的字符串形式按钮关联的函数,当按钮被点击时,执行该函数
    fg(foreground)按钮的前景色(按钮文本的颜色)
    font设置字体,还包含样式和大小
    image给按钮设置一张图像,必须是用图像create方法产生的
    bitmap指定按钮显示一张位图
    justifyLEFT、CENTER、RIGHT显示多行文本的时候,设置不同行之间的对齐方式
    padx单位像素按钮在x轴方向上的内边距,是指按钮的内容与按钮边缘的距离
    pady单位像素按钮在y轴方向上的内边距
    reliefRAISED,SUNKEN,FLAT,RIDGE,SOLID,GROOVE设置控件3D效果
    stateDISABLED、ACTIVE、NORMAL设置组件状态。正常(normal)、激活(active)、禁用(disabled)
    underline取值为整数,默认值为-1默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为0时,第一个字符带下划线,为1时,前两个字符带下划线,以此类推
    width单位像素按钮的宽度,如未设置此项,其大小以适应按钮的内容(文本或图片的大小)
    height单位像素按钮的高度,同width属性
    wraplength取值为整数,默认值0限制按钮每行显示的字符的数量
    textvariable指定一个变量名,变量值被转变为字符串在控件上显示。当变量值改变,控件也将自动更新
    anchor取值可参考布局中的锚选项锚选项,控制文本的位置,默认为中心

    以上属性中,许多具有通用性,熟悉之后,其他组件也就掌握了,关于通用属性见tkinter 概述

    Label

    一个标签组件。主要用来实现显示功能,可以显示文字和图片。

     l = Label ( master, option=value ... )
    

    其实例化方式与按钮是一样的,可以说组件都是按照这样的方式实例化的。Label的属性可以直接参考按钮,事实上按钮就是一个特殊的标签,只不过按钮多出了点击响应的功能。

    from tkinter import *
    root = Tk()
    
    label_1 = Label(root,text="我是标签")
    label_2 = Label(root,bitmap="error")
    
    label_1.pack()
    label_2.pack()
    
    root.mainloop()
    

    如下,分别使用了两个标签,一个显示文字,另一个显示了一张位图

    这里写图片描述

    关于图片显示
    注意:Python内置了10种位图,可以直接使用,设置bitmap即可。
    “error”
    “gray75”
    “gray50”
    “gray25”
    “gray12”
    “hourglass”
    “info”
    “questhead”
    “question”
    “warning”

    效果 :这里写图片描述

    Python 中image属性仅支持gif、pgm、ppm格式,bitmap支持xbm格式。设置方法:

    photo = PhotoImage(file="image.gif")
    bmp = BitmapImage(file="logo.xbm")
    label = Label(root,image = photo)
    

    注意:image和bitmap参数两者只需设置一个,如果同时设置两个属性,则image 将优先

    如需显示其他格式图片,则需要做一些特别处理,要用到Python的图像处理库——PIL库,但是PIL不支持Python3,且该库过于陈旧,不建议使用,这里可以选择其替代方案,Pillow库,函数使用方法与PIL相同。首先去网上下载并安装Pillow库

    使用如下:

    from PIL import Image, ImageTk
    image = Image.open("F:\\001.jpg")
    photo = ImageTk.PhotoImage(image)
    
    #在Label中显示图片
    label = Label(root,image = photo)
    label.pack()
    

    Entry

    一个单行文本输入框。可以用来接受用户的输入,但是只能输入一行。如果你只是想显示而不是编辑,那么应该使用标签。

    w = Entry( master, option=value ... )
    

    需要注意一点,Entry与 Lable 和 Button 不同,其text 属性是无效的。那么需要让Entry显示文字改如果操作呢?

    from tkinter import * 
    root = Tk() 
    e = StringVar() 
    # 使用textvariable属性,绑定字符串变量e 
    entry = Entry(root,textvariable = e) 
    e.set('请输入……') 
    entry.pack() 
    root.mainloop() 
    

    这里写图片描述

    关于StringVar
    该类属于tkinter下,界面编程的时候,需要跟踪变量值的变化,以保证值的变更随时可以显示在界面上。由于python无法做到这一点,所以使用了tcl的相应的对象,也就是StringVar。StringVar除了set外还有其他的函数包括:get用于返回StringVar变量的值,trace(mode, callback) 用于在某种mode被触发的时候调用callback函数。

    设置为密码框:
    当用户在Entry输入密码时,希望输入的密码是不可见的,而不是明文,则可以使用show属性

    from tkinter import * 
    root = Tk() 
    entry = Entry(root,show="*") 
    
    entry.pack() 
    root.mainloop()
    

    这里写图片描述

    Entry还可以将其state属性设置为"readonly",变为只读,则单行文本框不能编辑,变成了显示文字的Label

    from tkinter import * 
    root = Tk() 
    entry = Entry(root) 
    entry['state'] = 'readonly' 
    
    entry.pack() 
    root.mainloop() 
    

    注意:第4行代码中,使用了另一种方式设置组件的属性,类似于字典的操作,直接为某个属性设置值,使用这种方式设置属性,则不需在实例化的时候传入值。
    组件实例对象[“属性名”] = 值

    方法描述
    delete ( first, last=None )删除字符的部件,在指标之一,但不包括在最后位置的字符开始。如果第二个参数被忽略,只有在单个字符的位置被删除.
    get()返回当前组件的字符串
    icursor ( index )在给定索引处的字符之前插入光标
    index ( index )移动entry的内容,使得给定索引处的字符是最左边的可见字符。 如果文本在entry中刚好完全显示,则不起作用。
    insert ( index, s )将字符串s插入给定索引处的字符之前。
    select_adjust ( index )此方法用于确保选中的部分包含指定索引处的字符。
    select_clear()清除选中的。 如果当前没有选中的,则不起作用。
    select_from ( index )将ANCHOR索引位置设置为由索引选择的字符位置,并选择该字符。
    select_present()如果有选择,则返回true,否则返回false。
    select_range ( start, end )在程序控制下设置选择。 选择从开始索引处开始的文本,但不包括结束索引处的字符。 起始位置必须在结束位置之前。
    select_to ( index )选择从ANCHOR位置开始的所有文本,但不包括给定索引处的字符。
    xview ( index )此方法在将Entry链接到水平滚动条时非常有用。
    xview_scroll ( number, what )用于水平滚动Entry。 参数必须是UNITS,按字符宽度滚动,或者按页面大小来滚动。 数字是从左到右滚动的正数,负数从右到左滚动。

    Radiobutton

    单选按钮,即在同一组内只能有一个按钮被选中,每当选中组内的一个按钮时,其它的按钮自动改为非选中态,与其他控件不同的是,它有组的概念

    w = Radiobutton ( master, option, ...  )
    

    该按钮的使用较为简单,同样使用command关联函数,点击时候响应

    from tkinter import *
    
    def sel():
       selection = "You selected the option " + str(var.get())
       print(selection)
    
    root = Tk()
    #创建整型变量,用于绑定,相同的整型变量是为同一组
    var = IntVar()
    R1 = Radiobutton(root, text="Option 1", variable=var, value=1,command=sel)
    R1.pack( anchor = W )
    
    R2 = Radiobutton(root, text="Option 2",variable=var,value=2,command=sel)
    R2.pack( anchor = W )
    
    R3 = Radiobutton(root, text="Option 3", variable=var, value=3,command=sel)
    R3.pack( anchor = W)
    
    root.mainloop()
    

    基本方法:

    方法描述
    deselect()清除单选按钮的状态
    flash()在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时的状态。
    invoke()可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的操作相同的操作
    select()设置单选按钮为选中。

    以上几个组件熟练掌握后,其他组件使用也都大同小异,不存在障碍,在后面的博客中将会综合运用多个组件创建一些使用小工具,并会涉及一些关于异步刷新UI的问题,网上的一些博客基本没有讨论过异步刷UI以及一些多窗口的问题,不知道是不是因为抄来抄去的缘故,有过GUI编程经验的应该都知道,异步线程与UI线程交互是界面编程中非常重要的内容,例如Android开发,提供了大量机制,但是很遗憾,tkinter居然没有这样的机制,只能纯手动来实现。

    最后推荐一些非常好的高清的关于tkinter的资料
    tkinter高清文档
    http://download.csdn.net/download/yingshukun/10143546
    http://download.csdn.net/download/yingshukun/10143549

    关于现代化界面ttk方面的使用资料
    http://download.csdn.net/download/yingshukun/10143556

    展开全文
  • tkinter 常用控件使用方法

    千次阅读 2018-08-21 11:42:39
    控件尺寸变 Configure 文本框添加右键 from tkinter import * class RightKey : def __init__ (self,root) : self.root=root self.menubar = Menu(self.root, tearoff= False ) def _cut ...

    treeview

    from tkinter import ttk
    #设置show属性为 headings 即可隐藏首列。
    tree = ttk.Treeview(root,columns=['1','2','3'],show='headings')
    tree.column('1',width=100,anchor='center')
    tree.column('2',width=100,anchor='center')
    tree.column('3',width=100,anchor='center')
    tree.heading('1',text='姓名')
    tree.heading('2',text='成绩')
    
    tree.insert('','end',values=['A','B','C'])#插入
    
    [tree.delete(item) for item in   tree.get_children() ]   #清空
    
    #获取条目值
    def treeviewClick(event):#单击
        print ('单击')
        for item in tree.selection():
            item_text = tree.item(item,"values")
            print(item_text[0])#输出所选行的第一列的值
    
    tree.bind('<ButtonRelease-1>', treeviewClick)#绑定单击离开事件===========
    

    https://stackoverflow.com/questions/34849035/how-to-get-the-value-of-a-selected-treeview-item
    综合使用: https://www.cnblogs.com/Tommy-Yu/p/4156014.html
    用法杂记:https://www.cnblogs.com/wumac/p/5816764.html

    Command
     self.Command2.config(state='disabled')

    其他
    self.Text1.delete(0, 'end')
    self.Label2.config(text='请先点击获取按钮!!!')

    事件大全

    事件代码
    鼠标左键单击按下1/Button-1/ButtonPress-1
    鼠标左键单击松开ButtonRelease-1
    鼠标右键单击3
    鼠标左键双击Double-1/Double-Button-1
    鼠标右键双击Double-3
    鼠标滚轮单击2
    鼠标滚轮双击Double-2
    鼠标移动B1-Motion
    鼠标移动到区域Enter
    鼠标离开区域Leave
    获得键盘焦点FocusIn
    失去键盘焦点FocusOut
    键盘事件Key
    回车键Return
    控件尺寸变Configure

    文本框添加右键

    from tkinter import *
    class RightKey:
        def __init__(self,root):
            self.root=root
            self.menubar = Menu(self.root, tearoff=False)
        def _cut(self,editor, event=None):
            editor.event_generate("<<Cut>>")
        def _copy(self,editor, event=None):
            editor.event_generate("<<Copy>>")
        def _paste(self,editor, event=None):
            editor.event_generate('<<Paste>>')
        def rightKey(self,event, editor):
            self.menubar.delete(0,END)
            self.menubar.add_command(label='剪切(X)   Ctrl+X',command=lambda:self._cut(editor))
            self.menubar.add_command(label='复制(C)   Ctrl+C',command=lambda:self._copy(editor))
            self.menubar.add_command(label='粘贴(V)   Ctrl+V',command=lambda:self._paste(editor))
            self.menubar.post(event.x_root,event.y_root)
    
    if __name__=='__main__':
        root=Tk()
        a=RightKey(root)
         #创建一个菜单
        #以Entry为例,Text对象完全一样。
        ent=Entry(root)
        ent.pack()
        ent.bind("<Button-3>", lambda x: a.rightKey(x, ent))#绑定右键鼠标事件
        root.mainloop()
    展开全文
  • Python Tkinter 常用控件空间位置摆放

    千次阅读 2020-05-23 14:29:36
    Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置。 from Tkinter import* #初始化Tk() myWindow = Tk() #设置标题 myWindow.title('Python GUI ...

    几何管理
    Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置。
    在这里插入图片描述

    from Tkinter import*
     
    #初始化Tk()
    myWindow = Tk()
    #设置标题
    myWindow.title('Python GUI Learning')
    #设置窗口大小
    width = 380
    height = 300
    #获取屏幕尺寸以计算布局参数,使窗口居屏幕中央
    screenwidth = myWindow.winfo_screenwidth()  
    screenheight = myWindow.winfo_screenheight() 
    alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)   
    myWindow.geometry(alignstr)
    #设置窗口是否可变长、宽,True:可变,False:不可变
    myWindow.resizable(width=False, height=True)
     
    #框架布局
    frame_root = Frame(myWindow)  
    frame_l = Frame(frame_root)  
    frame_r = Frame(frame_root) 
    #创建一个标签,并在窗口上显示
    Label(frame_l, text="中国", bg="green", font=("Arial", 12), width=10, height=2).pack(side=TOP)
    Label(frame_l, text="日本", bg="green", font=("Arial", 12), width=10, height=2).pack(side=TOP)
    Label(frame_r, text="美国", bg="green", font=("Arial", 12), width=10, height=2).pack(side=TOP)
    Label(frame_r, text="韩国", bg="green", font=("Arial", 12), width=10, height=2).pack(side=TOP)
    #框架的位置布局
    frame_l.pack(side=LEFT)
    frame_r.pack(side=RIGHT)
    frame_root.pack() 
     
    #进入消息循环
    myWindow.mainloop()
    

    在这里插入图片描述
    创建按钮并绑定响应函数,输入半径,计算圆面积并输出。

    from Tkinter import*
     
    def printInfo():
        #清理entry2
        entry2.delete(0, END)
        #根据输入半径计算面积
        R=int(entry1.get())
        S= 3.1415926*R*R
        entry2.insert(10, S)
        #清空entry2控件
        entry1.delete(0, END)
        
    #初始化Tk()
    myWindow = Tk()
    #设置标题
    myWindow.title('Python GUI Learning')
     
    #标签控件布局
    Label(myWindow, text="input").grid(row=0)
    Label(myWindow, text="output").grid(row=1)
     
    #Entry控件布局
    entry1=Entry(myWindow)
    entry2=Entry(myWindow)
    entry1.grid(row=0, column=1)
    entry2.grid(row=1, column=1)
     
    #Quit按钮退出;Run按钮打印计算结果
    Button(myWindow, text='Quit', command=myWindow.quit).grid(row=2, column=0, sticky=W, padx=5,pady=5)
    Button(myWindow, text='Run', command=printInfo).grid(row=2, column=1, sticky=W, padx=5, pady=5)
    #row=2, column=1, sticky=W, padx=5, pady=5表示第2行第1列
     
    #进入消息循环
    myWindow.mainloop()
    

    在这里插入图片描述

    展开全文
  • Python GUI编程—Tkinter常用控件

    千次阅读 2019-03-26 21:47:29
    Python提供了多个GUI库,常用的有Tkinter,wxPython以及Jython,其中Tkinter模块儿(TK接口)是Python标准TK GUI工具包的接口,这里只介绍Tkinter模块儿,注:Python2.7ttk是直接导入的,ttk是自己的包,Python3.x版...
  • 目录tkinter库简介布局控件 tkinter库简介 布局 控件
  • 控件 描述 Button 按钮控件,显示按钮 Canvas 画布控件,显示图形元素如线条或文本 Checkbutton 多选框控件,用于提供多选框 Entry 输入控件,用于显示简单的文本内容 Frame 框架控件,用于在屏幕显示一...
  • tkinter 常用组件widegets

    2021-03-14 12:09:03
    from tkinter.messagebox import * from tkinter import * root = Tk() photo = PhotoImage(file="./snow.png") #file:t图片路径 imgLabel = Label(root,image=photo,text=“初春的雪!”) #把图片整合到标签类中 ...
  • tkinter比较常用组件

    2018-07-31 11:53:00
    1.输入框组件 输入框(Entry)用来输入单行内容,可以方便地向程序传递用户参数。...import tkinter as tk def btnHelloClicked(): cd = float(entryCd.get()) labelHello.config(text="%.2f°C = %.2...
  • Tkinter-Text控件常用功能示例

    千次阅读 2018-07-24 08:16:05
    Tkinter 的 Text 控件很强大, 很灵活, 可以实现很多功能. 虽然这个控件的主要用途是显示多行文本, 但其还可以被用作简单的文本编辑器, 甚至是网页浏览器.  Text 控件可以显示网页链接, 图片, HTML页面, 甚至 CSS ...
  • Listbox列表框组件(用于显示多个文本或者项目) 1)相关语法: 创建文本框和显示文本框: python Listbox对象 = Listbox(窗口对象) Listbox对象.pack() 插入文本内容: Listbox对象.insert(index,item) **in...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,350
精华内容 1,340
关键字:

tkinter常用控件