python tkinter中复选项的全选和反选

效果如下图:

# 全选 反选
import tkinter as tk 
from tkinter import ttk,messagebox,filedialog
#点击勾选框触发
def getselect(item):
  print(item,'selected')
#反选
def unselectall():
  for index,item in enumerate(list1):
    v[index].set('')
#全选
def selectall():
  for index,item in enumerate(list1):
    v[index].set(item)


#获取选择项
def showselect():
  selected=[i.get() for i in v if i.get()]
  print(selected)

window=tk.Tk()
window.geometry('500x500')
frame1=tk.Frame(window,pady=10,padx=15)
frame1.grid(row=0,column=0)
#全选反选
opt=tk.IntVar()
ttk.Radiobutton(frame1,text='全选',variable=opt,value=1,command=selectall).grid(row=0,column=0,sticky='w')
ttk.Radiobutton(frame1,text='反选',variable=opt,value=0,command=unselectall).grid(row=0,column=1,sticky='w')
list1=['阿尔及利亚', '澳大利亚', '博茨瓦纳', '巴西', '文莱', '加拿大', '智利', '中国', '哥伦比亚', '捷克', '丹麦', '美国', '印度']
v=[]
#设置勾选框,每四个换行
for index,item in enumerate(list1):
  v.append(tk.StringVar())
  ttk.Checkbutton(frame1,text=item,variable=v[-1],onvalue=item,offvalue='',command=lambda item=item:getselect(item)).grid(row=index//4+1,column=index%4,sticky='w')
ttk.Button(frame1,text="获取选择的国家",command=showselect).grid(row=index//4+2,column=0)
window.mainloop()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Python Tkinter 可以使用 ttk 模块来创建多选项卡。可以使用 ttk.Notebook() 创建一个多选项卡,然后使用 ttk.Frame() 创建选项的每个页面。使用 add() 方法将每个页面添加到多选项。可以使用 tab() 方法设置选项卡的标签文本和其他属性。例如: ``` import tkinter as tk from tkinter import ttk root = tk.Tk() root.geometry('300x200') # 创建多选项卡 notebook = ttk.Notebook(root) # 创建选项卡页面 page1 = ttk.Frame(notebook) page2 = ttk.Frame(notebook) # 将页面添加到多选项 notebook.add(page1, text='页面1') notebook.add(page2, text='页面2') # 在页面添加控件 label1 = tk.Label(page1, text='这是页面1') label1.pack(padx=10, pady=10) label2 = tk.Label(page2, text='这是页面2') label2.pack(padx=10, pady=10) # 显示多选项卡 notebook.pack() root.mainloop() ``` ### 回答2: Python tkinter 是一个用于 GUI 应用程序的 Python 模块,它提供了一些简单易用、界面美观的组件库,其包括多选项卡控件,也称为页签控件。 多选项卡控件通常被用于将相似的内容按照不同的类别分组显示,避免信息过于混杂,增加界面的易用性和美观性。在 tkinter ,可以使用 ttk 模块提供的 Notebook 组件来实现多选项卡控件。 具体实现步骤如下: 1. 导入 tkinter 和 ttk 模块: ``` import tkinter as tk from tkinter import ttk ``` 2. 创建主窗口对象: ``` root = tk.Tk() ``` 3. 创建 Notebook 控件: ``` notebook = ttk.Notebook(root) ``` 4. 创建多个子选项卡,并将它们添加到 Notebook 控件: ``` tab1 = ttk.Frame(notebook) tab2 = ttk.Frame(notebook) notebook.add(tab1, text="选项卡一") notebook.add(tab2, text="选项卡二") ``` 5. 在每个子选项添加需要显示的控件和内容: ``` # 在选项卡一添加 Label 和 Button 控件 label1 = tk.Label(tab1, text="选项卡一") button1 = tk.Button(tab1, text="点击") label1.pack() button1.pack() # 在选项卡二添加 Entry 和 Text 控件 entry2 = tk.Entry(tab2, width=50) text2 = tk.Text(tab2, height=10) entry2.pack() text2.pack() ``` 6. 激活并显示 Notebook 控件: ``` notebook.pack(expand=1, fill="both") ``` 这样,一个带有多选项卡的 tkinter 界面就实现了。用户可以通过点击不同的选项卡来查看不同的内容,提高程序的易用性和美观性。 ### 回答3: Python Tkinter 是一种常用的 GUI 编程工具,与其他编程语言相比,它具有语法简单、易于入手、功能丰富等优点。本文将介绍如何在 Python 使用 Tkinter 实现多选项卡。 所谓选项卡是指一个窗口包含多个标签页,每个标签页都分别显示不同的内容。选项卡界面简洁,易于操作,被广泛应用于各类桌面软件。 在使用 Tkinter 实现多选项卡时,首先需要导入 tkinter 的 ttk 模块,该模块提供了创建选项卡的方法。具体代码如下: ```python from tkinter import * from tkinter import ttk win = Tk() # 创建窗口对象 win.title('多选项卡') # 设置窗口标题 tabControl = ttk.Notebook(win) # 创建选项卡控件 # 第一个选项卡 tab1 = ttk.Frame(tabControl) tabControl.add(tab1, text='选项卡1') label1 = ttk.Label(tab1, text='这是第一个选项卡') label1.grid(column=0, row=0) # 第二个选项卡 tab2 = ttk.Frame(tabControl) tabControl.add(tab2, text='选项卡2') label2 = ttk.Label(tab2, text='这是第二个选项卡') label2.grid(column=0, row=0) tabControl.pack(expand=1, fill='both') # 将选项卡控件放置到窗口 win.mainloop() # 进入消息循环 ``` 上述代码,创建了一个名为“多选项卡”的窗口,其包含两个选项卡。每个选项卡由 ttk.Frame 创建,并使用 add 方法向选项卡控件添加。其,text 参数用于指定选项卡的标题。在每个选项,使用 Label 控件展示不同的内容。 通过上述代码,我们就可以完成简单的多选项卡界面。如果需要添加更多的选项卡,只需按照上述方式重添加即可。此外,还可以自定义选项卡的样式、位置、尺寸等属性,满足不同应用场景的需求。 综上所述,使用 Python Tkinter 实现多选项卡是一项常见的 GUI 编程任务,而 ttk 模块提供了简单易用的选项卡控件。通过熟练掌握 Tkinter 选项卡相关操作,可以快速开发出高效、美观的桌面应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值