2017-12-18 3 views
2

Ich möchte Listbox mit Checkboxen darin machen. Ich habe erst jetzt eine Listbox erstellt, aber ich weiß nicht, wie ich Checkboxen einfügen soll. Und dann möchte ich eine Schaltfläche erstellen, damit ich alle ausgewählten Elemente drucken kann. Kannst du mir bitte helfen?Listbox mit Kontrollkästchen Python

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() 
+1

Es wird nicht empfohlen, 'from tkinter import *' zu verwenden. Dies kann zu Problemen führen. – Simon

+0

Was soll ich verwenden? – taga

+2

'import tkinter' ist ein Weg. Dann müssten Sie 'tkinter.insert()' verwenden. Oder um sich davor zu retten, 'tkinter' jedes Mal einzugeben, wenn Sie es als etwas anderes definieren können. Zum Beispiel 'import tkinter als tk'. Dies wäre 'tk.insert()' – Simon

Antwort

0

Im Folgenden würden Sie die Kontrolltasten aber nicht in einem Listenfeld geben. Listbox kann nur Text enthalten.

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() 
+0

Ich muss Kontrollkästchen in Listbox sein – taga

+0

Sie können keine Kontrollkästchen in eine Listbox einfügen. Eine Listbox kann nur Text enthalten. –

+2

Wenn Sie eine Listbox benötigen, können Sie ein Tick-Zeichen in den Text einfügen, wenn Sie ausgewählt sind, und es entfernen, wenn Sie nicht ausgewählt sind, aber es klingt wie das Rad neu zu erfinden :) –