【问题标题】:Listbox with checkboxes Python带有复选框 Python 的列表框
【发布时间】:2018-06-01 05:58:11
【问题描述】:

我想制作带有复选框的列表框。我现在只制作了列表框,但我不知道如何在其中放置复选框。然后我想创建一个按钮,这样我就可以打印所有选定的项目。你能帮帮我吗?

from tkinter import *

myApp=Tk()

LB=Listbox(myApp,selectmode=EXTENDED)
LB.grid(row=1,column=1)
LB.insert(1,"Option 1")
LB.insert(2,"Option 2")
LB.insert(3,"Option 3")

myApp.mainloop()

【问题讨论】:

  • 不建议使用from tkinter import *。这可能会导致问题。
  • 我应该使用什么?
  • import tkinter 是一种方式。然后你需要使用tkinter.insert()。或者为了避免每次您可以将其定义为其他内容时键入tkinter。例如import tkinter as tk。这将是tk.insert()
  • 您不能在列表框中放置复选框。选择通过高亮显示。
  • tkinter.tix.CheckList 存在,至少通过 Python 3.6。

标签: python tkinter tk


【解决方案1】:

以下内容将为您提供复选按钮 但不在列表框中。列表框只能包含文本。

from tkinter import Tk, IntVar, Checkbutton, Button, W


def print_button_callback():
    global state
    for i in range(3):
        if state[i][1].get():
            print(state[i][0])

myApp=Tk()
state = [("Option {0}".format(i+1),IntVar()) for i in range(3)]

for i in range(3):
    Checkbutton(myApp, text=state[i][0], variable=state[i][1]).grid(row=i, sticky=W)

Button(myApp, text="Print", command=print_button_callback).grid(row=3, sticky=W)


myApp.mainloop()

【讨论】:

  • 我需要将复选框放入列表框
  • 您不能在列表框中插入复选框。列表框只能包含文本。
  • 如果您需要一个列表框,您可以在选中时在文本中插入一个刻度字符,并在取消选中时将其删除,但这听起来像是在重新发明轮子:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2018-02-14
  • 2014-04-11
  • 1970-01-01
  • 2012-03-09
  • 2010-12-02
相关资源
最近更新 更多