Re: Listbox auswahl als Int
Verfasst: Donnerstag 18. April 2019, 14:55
Kannst du bitte ein Beispiel an einer Listbox geben?
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
import random
import tkinter as tk
APP_TITLE = "Listbox Selection"
APP_XPOS = 100
APP_YPOS = 100
APP_WIDTH = 300
APP_HEIGHT = 300
class Application(object):
def __init__(self, main_win):
self.main_win = main_win
self.build()
def build(self):
self.radom_data = [round(random.uniform(0,1000), 2)
for cycle in range(20)]
print(self.radom_data)
self.main_frame = tk.Frame(self.main_win)
self.main_frame.pack(fill='both', expand=True, padx=10, pady=10)
scrollbar = tk.Scrollbar(self.main_frame)
scrollbar.grid(row=0, column=1, sticky='ns')
listbox = tk.Listbox(self.main_frame, height=10, width=50,
selectmode="extended")
listbox.grid(row=0, column=0)
listbox.selection_set(0)
listbox["yscrollcommand"] = scrollbar.set
listbox.bind('<<ListboxSelect>>', self.check)
self.listbox = listbox
scrollbar["command"] = listbox.yview
listbox.insert('end', *self.radom_data)
def check(self, event):
print(type(self.listbox.curselection()), self.listbox.curselection())
line_nubers = self.listbox.curselection()
for line_nr in line_nubers:
selected_element = self.listbox.get(line_nr)
print("Selektiertes Listbox-Elemente-{}: {}".format(
line_nr, selected_element))
def main():
main_win = tk.Tk()
main_win.title(APP_TITLE)
main_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
#main_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT))
app = Application(main_win)
main_win.mainloop()
if __name__ == '__main__':
main()
#from tkinter import *
#from tkinter.scrolledtext import ScrolledText
#from tkinter.ttk import Progressbar
#from tkinter.ttk import Combobox
#from tkinter import messagebox
#from tkinter import filedialog
#from time import *
#import webbrowser as web
#import os
#import sys
#FONT = ["Bahnschrift", 14 , "bold"]
#FONT2 = ["Bahnschrift", 12 , "bold"]
#def n1(event=None):
#def OPEN(event=None):
#filename = filedialog.askdirectory()
#Wider_zu.insert("end", filename)
#def BACK(event=None):
#var = -600
#var2 = 0
#for i in range(100):
#var = var + 6
#var2 = var2 + 6
#main.place(x=var, y=0)
#Wider.place(x=var2, y=0)
#sleep(0)
#root.update()
#Wider.destroy()
#def WIDERHER(event=None):
#e = Wider_zu.get()
#prolb["text"] = "Suche Dateien"
#Wider_zu.config(state="disabled")
#Widerher.config(state="disabled")
#for i in range(20):
#pro["value"] = i
#sleep(0.000025)
#root.update()
#if e == "":
#Wider_zu.config(state="normal")
#Widerher.config(state="normal")
#prolb["text"] = "Ein fehler ist Aufgetreten"
#prolb["text"] = "Dateien lokatisiert"
#try:
#d1r = open(scroll.get("active"), "r")
#d1 = d1r.read()
#d2 = open(Wider_zu.get()+"/"+scroll.get("active"), "w")
#d2.write(d1)
#prolb["text"] = "Dateien Ungeschrieben"
#for i in range(560):
#i = i + 20
#pro["value"] = i
#sleep(0)
#root.update()
#root.update()
#sleep(0.5)
#prolb["text"] = "Warten..."
#for i in range(20):
#i = i + 580
#pro["value"] = i
#sleep(0.25)
#root.update()
#pro.update()
#d1.close()
#d2.close()
#except:
#Wider_zu.config(state="normal")
#Widerher.config(state="normal")
#prolb["text"] = "Ein fehler ist Aufgetreten"
#Wider = Frame(root, height=300, width=600, bg="#FFFFFF")
#Wider.place(x=600, y=0)
#sc = Scrollbar(Wider)
#sc.place(x=300, y=80)
#scroll = Listbox(Wider, height=10, width=50, selectmode="extended")
#scroll.place(x=0, y=80)
#scroll.selection_set(0)
#scroll["yscrollcommand"] = sc.set
#sc["command"] = scroll.yview
#filer = open("C:/Users/Gabriel/Documents/1 Projeckte/Abteil B/Datei Liste.data", "r")
#file = filer.read().splitlines()
#filer.close()
#for i in file:
#scroll.insert("end", i)
#DatOpen = Button(Wider, text="Order Öffnen", bg="#FFFFFF", relief="raised", bd=1,
#font=FONT, command = OPEN)
#DatOpen.place(x=477, y=0)
#Back = Button(Wider, text="< Zurück", bg="#FFFFFF", relief="raised", bd=1,
#font=FONT, command = BACK)
#Back.place(x=0, y=0)
#Wider_zulb = Label(Wider, text="Widerherstellen zu:", bg="#FFFFFF", font=FONT2)
#Wider_zulb.place(x=0, y=50)
#Wider_zu = Entry(Wider, width=40, bg="#FFFFFF", font=FONT2)
#Wider_zu.place(x=150, y=52)
#Widerher = Button(Wider, text="Widerherstellen", bg="#FFFFFF", font=FONT2,
#relief="raised", bd=1, width=13, command = WIDERHER)
#Widerher.place(x=474, y=245)
#pro = Progressbar(Wider, length=600, maximum=600, value=0)
#pro.place(x=0, y=278)
#prolb = Label(Wider, text="", bg="#FFFFFF", font=FONT2)
#prolb.place(x=230, y=250)
#var = 0
#var2 = 600
#for i in range(100):
#var = var - 6
#var2 = var2 - 6
#Wider.place(x=var2, y=0)
#main.place(x=var, y=0)
#sleep(0)
#root.update()
#def n2(event=None):
#def BACK(event=None):
#var = -600
#var2 = 0
#for i in range(100):
#var = var + 6
#var2 = var2 + 6
#main.place(x=var, y=0)
#Hinzu.place(x=var2, y=0)
#sleep(0)
#root.update()
#Hinzu.destroy()
#def M(event=None):
#sel = listbox
#del file[sel]
#print(file)
##listbox.delete(0, END)
##for i in file:
##listbox.insert("end", i)
#Hinzu = Frame(root, height=300, width=600, bg="#FFFFFF")
#Hinzu.place(x=600, y=0)
#Back = Button(Hinzu, text="< Zurück", bg="#FFFFFF", relief="raised", bd=1,
#font=FONT, command = BACK)
#Back.place(x=0, y=0)
#listbox = Listbox(Hinzu, height=10, width=40)
#listbox.place(x=0, y=40)
#filer = open("C:/Users/Gabriel/Documents/1 Projeckte/Abteil B/Datei Liste.data", "r+")
#file = filer.read().splitlines()
#filer.close()
#for i in file:
#listbox.insert("end", i)
#plus = Button(Hinzu, text="+", width=2, bg="#FFFFFF", relief="raised", bd=1)
#plus.place(x=0, y=210)
#minus = Button(Hinzu, text="-", width=2, bg="#FFFFFF", relief="raised", bd=1, command =M)
#minus.place(x=23, y=210)
#var = 0
#var2 = 600
#for i in range(100):
#var = var - 6
#var2 = var2 - 6
#Hinzu.place(x=var2, y=0)
#main.place(x=var, y=0)
#sleep(0)
#root.update()
#root = Tk()
#root.title("Datei Manager v.1.1")
#root.resizable(0, 0)
#root.geometry("600x300+330+100")
#root.config(bg="#FFFFFF")
##root.iconbitmap(r"Datei Icon.ico")
#root.attributes("-topmost", False)
#try:
#import winsound as sound
#except:
#messagebox.showerror \
#("!Error!", "Das Modul 'Winsound'\nKonnte nicht gefunden werden!")
#main = Frame(root, height=300, width=600, bg="#FFFFFF")
#main.place(x=0, y=0)
#D_Widerherstellen = Button(main, text="Dateien Widerherstellen >", width=20, bg="#FFFFFF",
#relief="raised", bd=1, font="Bahnschrift 14 bold", command = n1, justify="left")
#D_Widerherstellen.place(x=0, y=80)
#D_Hinzufuegen = Button(main, text="Dateien Verwalten >", width=20, bg="#FFFFFF",
#relief="raised", bd=1, font="Bahnschrift 14 bold", command = n2, justify="left")
#D_Hinzufuegen.place(x=0, y=120)
#root.mainloop()
Code: Alles auswählen
from tkinter import *
Win = Tk()
file = ("a","b","c")
listbox = Listbox(Win, height=5)
listbox.pack()
for i in file:
listbox.insert("end", i)
def DEL():
sel = listbox.curselection()[0]
print(sel, file[sel])
minus = Button(Win, text="Hallo", command = DEL)
minus.pack()
Win.mainloop()
Code: Alles auswählen
#!/usr/bin/env python3
from functools import partial
import tkinter as tk
def print_selected_filename(listbox, filenames):
indices = listbox.curselection()
if indices:
assert len(indices) == 1, 'more than one selected'
index = indices[0]
print(index, filenames[index])
def main():
filenames = ['a', 'b', 'c']
window = tk.Tk()
listbox = tk.Listbox(window, height=5)
listbox.pack()
for filename in filenames:
listbox.insert(tk.END, filename)
tk.Button(
window,
text='Hallo',
command=partial(print_selected_filename, listbox, filenames),
).pack()
window.mainloop()
if __name__ == '__main__':
main()