精华内容
下载资源
问答
  • 通过例子来说明如何正确使用tkinter控件的属性来打开或关闭可视属性

    通过小例子帮助我们更好的理解如何使用tkinter控件的 pack_forget(),grid_forget(),grid_remove()

    https://www.delftstack.com/howto/python-tkinter/how-to-hide-recover-and-delete-tkinter-widgets/

    1. pack_forget() 方法来隐藏Tkinter控制

    与pack()方法相反,我们可以通过调用pack_forget()方法来隐藏Tkinter控件

    try:
        import Tkinter as tk
    except:
        import tkinter as tk
        
    
    class Test():
       def __init__(self):
           self.root = tk.Tk()
           self.label=tk.Label(self.root,
                               text = "Label")
           self.buttonForget = tk.Button(self.root,
                              text = 'Click to hide Label',
                              command=lambda: self.label.pack_forget())
           self.buttonRecover = tk.Button(self.root,
                              text = 'Click to show Label',
                              command=lambda: self.label.pack())       
           
           self.buttonForget.pack()
           self.buttonRecover.pack()
           self.label.pack(side="bottom")
           self.root.mainloop()
    
       def quit(self):
           self.root.destroy()
            
    app = Test()
    

    在这里插入图片描述
    点"Click to hide Label"按钮,通过调用pack_forget()方法,将会隐藏Label标签
    点"Click to show Label"按钮,通过执行pack()方法,程序会再次在界面显示Label标签

    grid_forget() 方法来隐藏控件

    如果控制是用grid()方法来绘制的,可以通过grid_forget()方法来隐藏控件

    try:
        import Tkinter as tk
    except:
        import tkinter as tk
        
    
    class Test():
       def __init__(self):
           self.root = tk.Tk()
           self.label=tk.Label(self.root,
                               text = "Label")
           self.buttonForget = tk.Button(self.root,
                              text = 'Click to hide Label',
                              command=lambda: self.label.grid_forget())
           self.buttonRecover = tk.Button(self.root,
                              text = 'Click to show Label',
                              command=lambda: self.label.grid())       
           
           self.buttonForget.grid(column=0, row=0, padx=10, pady=10)
           self.buttonRecover.grid(column=0, row=1, padx=10,  pady=10)
           self.label.grid(column=0, row=2, padx=10, pady=10)
           self.root.mainloop()
    
       def quit(self):
           self.root.destroy()
            
    app = Test()
    

    在这里插入图片描述
    当你执行了隐藏按钮的动作后,会发现label标签的原始位置发生了变化。如果想让它回到原始位置,
    那么可行的方法是用grid_remove()主法来操作。

    用grid_remove()方法来保持隐藏控制的可再现位置

    grid_remove()方法在隐藏控件的同时会记住控件行,列位置属性便于恢复

    try:
        import Tkinter as tk
    except:
        import tkinter as tk
        
    
    class Test():
       def __init__(self):
           self.root = tk.Tk()
           self.label=tk.Label(self.root,
                               text = "Label")
           self.buttonForget = tk.Button(self.root,
                              text = 'Click to hide Label',
                              command=lambda: self.label.grid_remove())
           self.buttonRecover = tk.Button(self.root,
                              text = 'Click to show Label',
                              command=lambda: self.label.grid())       
           
           self.buttonForget.grid(column=0, row=0, padx=10, pady=10)
           self.buttonRecover.grid(column=0, row=1, padx=10,  pady=10)
           self.label.grid(column=0, row=2, padx=10, pady=20)
           self.root.mainloop()
    
       def quit(self):
           self.root.destroy()
            
    app = Test()
    

    在这里插入图片描述

    通地destroy方法来删除控件

    try:
        import Tkinter as tk
    except:
        import tkinter as tk
        
    
    class Test():
       def __init__(self):
           self.root = tk.Tk()
           self.label=tk.Label(self.root,
                               text = "Label")
           self.buttonForget = tk.Button(self.root,
                              text = 'Click to hide Label',
                              command=lambda: self.label.destroy())
           self.buttonRecover = tk.Button(self.root,
                              text = 'Click to show Label',
                              command=lambda: self.label.pack())       
           
           self.buttonForget.pack()
           self.buttonRecover.pack()
           self.label.pack(side="bottom")
           self.root.mainloop()
    
       def quit(self):
           self.root.destroy()
            
    app = Test()
    

    执行删除操作后,如果再次执行pack()方法,程序则会报错

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\tkinter\__init__.py", line 1702, in __call__
        return self.func(*args)
      File "C:\Users\jinku\OneDrive\Bureaublad\test.py", line 17, in <lambda>
        command=lambda: self.label.pack())
      File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\tkinter\__init__.py", line 2140, in pack_configure
        + self._options(cnf, kw))
    _tkinter.TclError: bad window path name ".!label"
    
    展开全文
  • Button 控件是一个标准 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图像,还可以关联 Python 函数。Tkinter 按钮被按下时,会自动调用该函数。按钮文本可跨越一个以上行。此外,文本字符可以有下划线...

    Button 控件是一个标准的 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图
    像,还可以关联 Python 函数。
    Tkinter 的按钮被按下时,会自动调用该函数。
    按钮文本可跨越一个以上的行。此外,文本字符可以有下划线,例如标记的键盘快捷
    键。默认情况下,使用 Tab 键可以移动到一个按钮部件,用法如下:
    Entry(根对象, [属性列表]),即Entry(root, option...)
    常用的属性列表如下:

    0fb750de4033ee45f504d5ba92b48697.png

    Button 实例:

    实例1:创建按钮,代码如下:

    from tkinter import*
    #初始化Tk()
    myWindow = Tk()
    #设置标题
    myWindow.title('Python GUI Learning')
    #创建两个按钮
    b1=Button(myWindow, text='button1',bg="red", relief='raised', width=8, height=2)
    b1.grid(row=0, column=0, sticky=W, padx=5,pady=5)
    b2=Button(myWindow, text='button2', font=('Helvetica 10 bold'),width=8, height=2)
    b2.grid(row=0, column=1, sticky=W, padx=5, pady=5)
    #进入消息循环
    myWindow.mainloop()

    运行结果:

    aca1a7cf95ead8c64c778f6ea9ca39ed.png

    实例2:创建按钮并绑定响应函数,输入半径,计算圆面积并输出,代码如下:

    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)
    #进入消息循环
    myWindow.mainloop()

    运行结果:

    c134915e12622171452305506c19f7e0.png

    输入半径:

    505fe9b8a1b94b901b6c9453ca5ab385.png

    点击‘Run’计算面积:

    f43fe142006b40376f9e204a7bce18d0.png

    相关学习资料:

    Python Tkinter 绘图项目ke.qq.com
    7ac3c06e22a3feecf3ea252351d38f20.png
    Python Tkinter 绘图项目edu.csdn.net
    e680cd80dfd8aa04de2a84b24d6a7362.png
    展开全文
  • 本文中介绍Python自带GUI模块(Tkinter)控件操作导入需要模块import tkinter as tkfrom tkinter import ttkimport random,stringwindows = tk.Tk()windows.title("TKinter表格操作") #软件打开后显示名称输入框...

    本文中介绍Python自带GUI模块(Tkinter)控件操作

    导入需要的模块

    import tkinter as tk

    from tkinter import ttk

    import random,string

    windows = tk.Tk()

    windows.title("TKinter表格操作") #软件打开后显示的名称

    输入框

    self.tips_text = tk.Entry(windows, width=25, font=12, bd=7)

    self.tips_text.insert(tk.END, "TKinter表格操作") #向输入框插入

    self.tips_text.configure(state="disabled") #将输入框状态设置为不可写只可读,默认可写

    self.tips_text.grid(row=0, column=0)

    下拉框

    self.number = tk.StringVar()

    self.numberChosen = ttk.Combobox(windows, width=8, textvariable=self.number, height=3)

    self.numberChosen['values'] = ("name", "sex", "classroom") # 设置下拉列表的值

    self.numberChosen.grid(column=1, row=0) # 设置其在界面中出现的位置 column代表列 row 代表行

    self.numberChosen.current(0) # 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值

    标签

    self.status = tk.StringVar()

    self.status.set("注册成功: {}个".format(self.a)) #设置标签内容

    self.lblStatus = tk.Label(windows, textvariable=self.status, anchor='c')

    self.lblStatus.grid(row=2, column=1, columnspan=20, sticky=tk.S + tk.E)

    按钮

    self.Login_Button = tk.Button(windows, text="点击自动注册", width=10, height=1, command=self.run)

    self.Login_Button.grid(row=0, column=2)

    文本框

    self.text = tk.StringVar()

    self.text = tk.Text(windows, width=75, height=20,)

    self.text.grid(row=1, column=0, columnspan=20, rowspan=2)

    self.text.get(1.0, "end") #获取文本框所有内容

    表格

    self.columns = ("phone", "password", "state")

    self.tables = ttk.Treeview(windows, show="headings", columns=self.columns, selectmode=tk.BROWSE)

    self.tables.column("phone", anchor="center", width=130)

    self.tables.column("password", anchor="center", width=150)

    self.tables.column("state", anchor="center", width=100)

    self.tables.heading("phone", text="手机号")

    self.tables.heading("password", text="密码")

    self.tables.heading("state", text="注册状态")

    self.tables.grid(row=1, column=0, columnspan=3)

    整体代码

    # coding : utf-8

    """

    Author : soliton

    Email : soliton.wang@gmail.com

    QQ : 1670829014

    """

    import tkinter as tk

    from tkinter import ttk

    import random,string

    windows = tk.Tk()

    # 设置图标

    windows.iconbitmap('favicon.ico')

    windows.title("TKinter表格操作")

    class Display:

    def __init__(self):

    self.a = 0

    self.b = 0

    self.c = 0

    self.insert_execl = []

    self.tips_text = tk.Entry(windows, width=25, font=12, bd=7)

    self.tips_text.insert(tk.END, "TKinter表格操作")

    self.tips_text.configure(state="disabled")

    self.tips_text.grid(row=0, column=0)

    self.number = tk.StringVar()

    self.numberChosen = ttk.Combobox(windows, width=8, textvariable=self.number, height=3)

    self.numberChosen['values'] = ("name", "sex", "classroom") # 设置下拉列表的值

    self.numberChosen.grid(column=1, row=0) # 设置其在界面中出现的位置 column代表列 row 代表行

    self.numberChosen.current(0) # 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值

    self.columns = ("phone", "password", "state")

    self.tables = ttk.Treeview(windows, show="headings", columns=self.columns, selectmode=tk.BROWSE)

    self.tables.column("phone", anchor="center", width=130)

    self.tables.column("password", anchor="center", width=150)

    self.tables.column("state", anchor="center", width=100)

    self.tables.heading("phone", text="手机号")

    self.tables.heading("password", text="密码")

    self.tables.heading("state", text="注册状态")

    self.tables.grid(row=1, column=0, columnspan=3)

    self.status = tk.StringVar()

    self.status.set("注册成功: {}个".format(self.a))

    self.lblStatus = tk.Label(windows, textvariable=self.status, anchor='c')

    self.lblStatus.grid(row=2, column=1, columnspan=20, sticky=tk.S + tk.E)

    self.status_error = tk.StringVar()

    self.status_error.set("注册失败: {}个".format(self.b))

    self.lblStatus_error = tk.Label(windows, textvariable=self.status_error, anchor='c')

    self.lblStatus_error.grid(row=2, column=0, columnspan=20, sticky=tk.S)

    self.Login_Button = tk.Button(windows, text="点击自动注册", width=10, height=1, command=self.run)

    self.Login_Button.grid(row=0, column=2)

    def run(self):

    self.password = ''.join(random.sample(string.ascii_lowercase, 8))

    self.username = ''.join(random.sample(string.ascii_uppercase, 5))

    self.insert_execl.clear()

    self.insert_execl.append(self.username)

    self.insert_execl.append(self.password)

    self.insert_execl.append('注册成功')

    print(self.insert_execl)

    if "注册成功" in self.insert_execl:

    self.tables.insert('', self.c,values=("{}".format(self.insert_execl[0]), self.insert_execl[1], self.insert_execl[2]))

    self.a += 1

    self.c += 1

    self.status.set("注册成功: {}个".format(self.a))

    else:

    self.tables.insert('', self.c,values=("{}".format(self.insert_execl[0]), self.insert_execl[1], self.insert_execl[2]))

    self.b +=1

    self.c += 1

    self.status_error.set("注册失败: {}个".format(self.b))

    if __name__ == '__main__':

    Display()

    windows.mainloop()

    以上代码可用,还有些控件等下期更新,更新时间(随缘),如果有不懂的地方也可以问我,一下是联系方式:

    Email : soliton.wang@gmail.com

    QQ : 1670829014

    Q群 :727588508

    展开全文
  • 本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下:# -*- coding: utf-8 -*-from Tkinter import *def btn_click():b2['text'] = 'clicked'evalue = e.get()print 'btn Click ...

    本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下:

    # -*- coding: utf-8 -*-

    from Tkinter import *

    def btn_click():

    b2['text'] = 'clicked'

    evalue = e.get()

    print 'btn Click and Entry value is %s' % evalue

    def btn_click_bind(event):

    print 'enter b2'

    def show_toplevel():

    top = Toplevel()

    top.title('2号窗口')

    Label(top, text='这是2号窗口').pack()

    root = Tk()

    root.title('1号窗口')

    # 显示内置图片

    # x = Label(root, bitmap='warning')

    l = Label(root, fg='red', bg='blue',text='wangwei', width=34, height=10)

    l.pack()

    # command 指定按钮调用的函数

    b = Button(root, text='clickme', command=btn_click)

    b['width'] = 10

    b['height'] = 2

    b.pack()

    # 使用bind 方式关联按钮和函数

    b2 = Button(root, text = 'clickme2')

    b2.configure(width = 10, height = 2, state = 'disabled')

    b2.bind("", btn_click_bind)

    b2.pack()

    # 弹出Toplevel窗口

    b3 = Button(root, text = 'showToplevel', command=show_toplevel)

    b3.pack()

    # 输入框

    e = Entry(root, text = 'input your name')

    e.pack()

    # 密码框

    epwd = Entry(root, text = 'input your pwd', show = '*')

    epwd.pack()

    # 菜单

    def menu_click():

    print 'I am menu'

    xmenu = Menu(root)

    submenu = Menu(xmenu, tearoff = 0)

    for item in ['java', 'cpp', 'c', 'php']:

    xmenu.add_command(label = item, command = menu_click)

    for item in ['think in java', 'java web', 'android']:

    submenu.add_command(label = item, command = menu_click)

    xmenu.add_cascade(label = 'progame', menu = submenu)

    # 弹出菜单

    def pop(event):

    submenu.post(event.x_root, event.y_root)

    # 获取鼠标左键点击的坐标

    def get_clickpoint(event):

    print event.x, event.y

    # frame

    for x in ['red', 'blue', 'yellow']:

    Frame(height = 20, width = 20, bg = x).pack()

    root['menu'] = xmenu

    root.bind('', pop)

    root.bind('', get_clickpoint)

    root.mainloop()

    运行效果如下图所示:

    201493154126714.png?201483154252

    希望本文所述对大家的Python程序设计有所帮助。

    展开全文
  • 本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下: # -*- coding: utf-8 -*- from Tkinter import * def btn_click(): b2['text'] = 'clicked' evalue = e.get() print '...
  • 本小节展示是python tkinter Checkbutton控件 选择了那些Ckeckbutton控件选项则在label控件中显示出来 from tkinter import *#导入tkinter window = Tk()#创建Tk实例,也就是要显示窗口 window.title("dalaojun...
  • 主要介绍了关于Python Tkinter Button控件command传参问题解决方式,具有很好参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • PYTHON tkinter Entry 控件的焦点移动

    千次阅读 2019-05-30 22:18:35
    PYTHON tkinter Entry 控件的焦点移动 话不多说。 代码片. # -*- coding: utf8 -*- from tkinter import * ##################################### ###--------------tk---------------- class App: def __init__...
  • # -*- coding: utf-8 -*-from Tkinter import *def btn_click():b2['text'] = 'clicked'evalue = e.get()print 'btn Click and Entry value is %s' % evaluedef btn_click_bind(event):print 'enter b2'def show_top...
  • 分享一个Python Tkinter基础控件用法入门例子,包括窗口显示、显示内置图片、弹出窗口、菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 -*- from Tkinter import * def btn_click(): ...
  • Tkinter Text 控件

    千次阅读 2017-04-26 00:06:52
    为了搞清楚Text控件中如何使用光标位置,可以通过如下代码进行测试,python版本为2.7.13。if text.edit_modified(): print text.index(END) text.edit_modified(False) #外面套个定时器循环检测经过测试后总结如下...
  • 本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下:# -*- coding: utf-8 -*-from Tkinter import *def btn_click():b2['text'] = 'clicked'evalue = e.get()print 'btn Click ...
  • 使用Text控件、Scrollbar控件实现一个阅读新闻窗口 实现代码如下: import tkinter as tk from PIL import Image, ImageTk root = tk.Tk() # 设置窗口标题 root.title('新闻阅读') # 设置窗口宽度600 高度500...
  • from tkinter import * import tkinter.messagebox from tkinter import filedialog from tkinter import colorchooser import PIL.Image def buttonClik(): content = contentVar.get() print(content) ...
  • 要求使用tkinter生成如下窗口: 图片.png 图片.png在右上角文本框输入名字,在旁边下拉框选择数字,点击"Click Me!", "Click Me!"文本将改变成如下: 图片.png可以选择"Unchecked"和"Enabled"其中一个。点击...
  • Python Tkinter Text控件

    2018-01-04 22:50:00
    这篇博客主要是简单的说一下Tkinter中的Text控件的...在Tkinter的所有组件中,Text组件显得异常强大和灵活,它适用于处理多任务,虽然该组件的主要目的是显示多行文本,但它常常被用于作为简单的文本编辑器和网页...
  • tkinter是Python官方自带GUI框架,简单好用,其中最常用恐怕就是Button控件了。这个控件就是在GUI上显示一个按钮,用户点击后,除法command参数所对应函数。不过,这里有一个很多人都在咨询问题,如何在...
  • Text 控件用于创建一个多行、格式化文本框。用户可以改变文本框内字体及文字颜色。1. Text控件的属性1) state此属性值可以是 normal 或 disabled。state 等于 normal,表示此文本框可以编辑内容。state 等于 ...
  • Python Tkinter Spinbox控件

    千次阅读 2013-11-19 10:24:57
    Spinbox是从标准Tkinter 控件Entry中演变而来,可以用来从一系列值中选择合适值。 当用户只需要从极少数值中进行选择时候,就可以使用Spinbox取代Entry。 Spinbox在行为上和Entry非常类似,主要不同就是...
  • 控件一览表 【标签控件 ttk.Label】 a_label = ttk.Label(win, text="输入名字") 【框架标签 ttk.Frame】 tab1 = ttk.Frame(self.tabControl) 【列表选择框 tk.Listbox】 listbox = tk.Listbox...

空空如也

空空如也

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

tkinter的控件