-
如何来隐藏、恢复、删除Tkinter的控件
2020-01-19 16:30:19通过例子来说明如何正确的使用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"
-
python tkinter entry控件移动光标位置_Tkinter Button控件
2020-12-20 21:05:27Button 控件是一个标准的 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图像,还可以关联 Python 函数。Tkinter 的按钮被按下时,会自动调用该函数。按钮文本可跨越一个以上的行。此外,文本字符可以有下划线...Button 控件是一个标准的 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图
像,还可以关联 Python 函数。
Tkinter 的按钮被按下时,会自动调用该函数。
按钮文本可跨越一个以上的行。此外,文本字符可以有下划线,例如标记的键盘快捷
键。默认情况下,使用 Tab 键可以移动到一个按钮部件,用法如下:
Entry(根对象, [属性列表]),即Entry(root, option...)
常用的属性列表如下: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()
运行结果:
实例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()
运行结果:
输入半径:
点击‘Run’计算面积:
相关学习资料:
Python Tkinter 绘图项目ke.qq.comPython Tkinter 绘图项目edu.csdn.net -
python tkinter listbox控件 简书_python tkinter模块的控件操作(1)
2021-01-15 02:28:44本文中介绍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控件_Python Tkinter基础控件用法
2020-11-21 01:23:16本文实例展示了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()
运行效果如下图所示:
希望本文所述对大家的Python程序设计有所帮助。
-
Python Tkinter基础控件用法
2020-12-25 17:33:37本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下: # -*- coding: utf-8 -*- from Tkinter import * def btn_click(): b2['text'] = 'clicked' evalue = e.get() print '... -
python tkinter Checkbutton控件
2021-03-26 23:44:07本小节展示的是python tkinter Checkbutton控件 选择了那些Ckeckbutton控件选项则在label控件中显示出来 from tkinter import *#导入tkinter window = Tk()#创建Tk实例,也就是要显示的窗口 window.title("dalaojun... -
关于Python Tkinter Button控件command传参问题的解决方式
2020-09-17 19:10:05主要介绍了关于Python Tkinter Button控件command传参问题的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
PYTHON tkinter Entry 控件的焦点移动
2019-05-30 22:18:35PYTHON tkinter Entry 控件的焦点移动 话不多说。 代码片. # -*- coding: utf8 -*- from tkinter import * ##################################### ###--------------tk---------------- class App: def __init__... -
python的tkinter的用法_PythonTkinter基础控件用法
2020-12-30 07:16:56# -*- 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基础控件入门实例
2019-09-22 02:38:46分享一个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 ttk控件_Python Tkinter基础控件用法
2020-12-22 12:38:49本文实例展示了Python Tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下:# -*- coding: utf-8 -*-from Tkinter import *def btn_click():b2['text'] = 'clicked'evalue = e.get()print 'btn Click ... -
Python tkinter Scrollbar控件
2021-03-26 17:37:13使用Text控件、Scrollbar控件实现一个阅读新闻的窗口 实现代码如下: import tkinter as tk from PIL import Image, ImageTk root = tk.Tk() # 设置窗口标题 root.title('新闻阅读') # 设置窗口宽度600 高度500... -
Python tkinter 所以控件的简单使用
2020-03-14 10:39:05from tkinter import * import tkinter.messagebox from tkinter import filedialog from tkinter import colorchooser import PIL.Image def buttonClik(): content = contentVar.get() print(content) ... -
python tkinter listbox控件 简书_python GUI作业:tkinter控件改变背景色
2021-02-09 07:18:57要求使用tkinter生成如下窗口: 图片.png 图片.png在右上角文本框输入名字,在旁边的下拉框选择数字,点击"Click Me!", "Click Me!"的文本将改变成如下: 图片.png可以选择"Unchecked"和"Enabled"的其中一个。点击... -
Python Tkinter Text控件
2018-01-04 22:50:00这篇博客主要是简单的说一下Tkinter中的Text控件的...在Tkinter的所有组件中,Text组件显得异常强大和灵活,它适用于处理多任务,虽然该组件的主要目的是显示多行文本,但它常常被用于作为简单的文本编辑器和网页... -
Tkinter Button控件command传参问题的解决方式
2020-11-24 13:37:19tkinter是Python官方自带的GUI框架,简单好用,其中最常用的恐怕就是Button控件了。这个控件就是在GUI上显示一个按钮,用户点击后,除法command参数所对应的函数。不过,这里有一个很多人都在咨询的问题,如何在... -
tkinter中text属性_Tkinter Text控件
2020-12-20 13:22:22Text 控件用于创建一个多行、格式化的文本框。用户可以改变文本框内的字体及文字颜色。1. Text控件的属性1) state此属性值可以是 normal 或 disabled。state 等于 normal,表示此文本框可以编辑内容。state 等于 ... -
Python Tkinter Spinbox控件
2013-11-19 10:24:57Spinbox是从标准Tkinter 控件Entry中演变而来的,可以用来从一系列的值中选择合适的值。 当用户只需要从极少的数值中进行选择的时候,就可以使用Spinbox取代Entry。 Spinbox在行为上和Entry非常类似,主要的不同就是... -
tkinter - 控件和对应的使用方法
2020-12-01 17:46:28控件一览表 【标签控件 ttk.Label】 a_label = ttk.Label(win, text="输入名字") 【框架标签 ttk.Frame】 tab1 = ttk.Frame(self.tabControl) 【列表选择框 tk.Listbox】 listbox = tk.Listbox...