programmering Flashcards
Tkinter radiobutton
v = StringVar()
radiobutton1 = Radiobutton(root, text=1, variable=v, value=”one”)
radiobutton2 = Radiobutton(root, text=2, variable=v, value=”two”)
Benytte:
butt = button(root, command=lambda: funksjon(v.get())
def funksjon(value_radio)
Når burde du bruke combobox, menu og optionlist
tkinter menu
tkinter combobox
Menu:
Burde brukes nå man vil gjøre veldige spesifikke ting for hver verdi.
Combobox:
For når bruker skal gjøre nært det samme for hver verdi.
Men i tillegg kan man skrive for p få en verdi. Så man kan ha en dropdown, sp kan man skrive på i tillegg til det som er i dropdown boksen. Litt som en entry med dropdown
Optionlist:
nesten det samme som combobox.
For når man vil at verdiene skal gjøre nært det samme.
Men man kan ikke skrive. Så det har ikke entry funksjonaliteten som combobox har.
Menu:
frame = Frame(root)
menu = Menu(frame)
menu. add-command(label=”hallo”, command=hallo)
manu. add_commanf(label=”hade”, command=root.destroy)
def hallo(): pass
root.config(menu=menu)
Combobox:
frame = Frame(root)
vlist = [“opt1”, “opt2”]
Combo = ttk.Combobox(frame, values=vlist)
Combo.set(vlist[0])
Combo.pack()
butt = Button(root, text=”Print values”, command=lambda:print_value(Combo.get())
butt.pack()
def print_value(value): print(value)
Option list:
option_list = [1, 2, 3]
value = IntVar(root)
value_inside = IntVar(root)
value_inside.set(“helllo”)
menu = OptionMenu(root, value_inside, *option_list)
menu.pack()
butt = Button(root, text=”submit”, command=lambda: print(value_inside.get())
butt.pack()
def print(value): print(value)
Listbox
frame = Frame(root)
vlist = [“Brod”, “brokoli”]
listbox = Listbox(root, selectmode=SINGLE) #selectmode kan også være multiple
for i in vlist:
listbox. insert(END, i) listbox. pack()
butt = Button(root, text=”print”, command=print_v)
butt.pack()
def print_v(): for i in listbox.curselection(): print(i)
Hvordan endre element i database?
Width open(“path”, “r” as fil:
Liste = json.load(fil)
Endre elementer med eks loop
With open(“path”, “w”) as fil:
Fil.write(json.dumps(liste))
Hvordan legge til i json?
With open("path", "r") as fil: Liste = json.load(fil) Liste.append(var)
With open("path", "w") as fil: Json.dump(liste, fil)
Hvordan slette fra database?
With open("path") as fil: Liste = json.load(fil)
Finn element med eks loop
With open("path", "w") as fil: Fil.write(json.dumps(iste))
Hvordan vise ting fra json?
With open("path", "r") as fil: Liste = json.load(fil)
*kwargs og *args
Disse brukes for å passere inn en uspesifisert mengde argumenter
kwargs er for dictionary
*args er bare for å passe inn
Nyttige random
random. randrange(start, stop, step)
random. randint(start, stop)
random. shuffle(list_)
Hvordan lage en liste?
list_ = list(range(start, stop, step)
Title og icon til GUI
root. iconbitmap(‘fil’)
root. title(“dette er en tittel”)
Hvordan legge til bokstaver i entry, med knaooer?
e. get()
e. delete(0, END)
e. insert(0, [variabel])
current = e.get()
e. delete(0, END)
e. insert(0, [eksisterende_var] + current)
Hvordan putte yt bilde
Hvordan resize bilde?
1.
Lage bilde
bilde = Image.open(‘fil’)
bilde = ImageTk.PhotoImage(bilde)
Putte bilde i det vi putter på skjermen
bilde_label = Label(image=bilde)
bilde_label.pack()
2.
Åpner bilde
p = Image.open(‘fil’)
Resizer
resize_p= p.resize((a, b) Image.ANTIALIAS)
Erklærer det resizede som en variabel
new_p = ImageTk.PhotoImage(resize_p)
Setter det i et label
my_lab = Label(window, image=new_p)
my_lab.pack()
OOP i tkinter
class klasse def \_\_init\_\_(self, root): .... self.btn=button(roottext="X"command=self.f) self.butt.pack()
def f(self): print("hey")
program = klasse(window)
window.mainloop()
bemerk:
Man kan erklære tk = Tk() ved å passere det navnet man vil ha inn i klasse, for så å bruke det som om det var root.
objekter som bruker kommandoer de ikke er i, refererer med self.[def]
Hvordan åpne nytt vindu
root = Tk()
def open_wind(): window = Tk()
butt = Button(root, command=open_win)
butt.pack()
root.mainloop
Hvordan ha tabs
from tkinter import ttk
notebook = ttk.Notebook(root) frame1 = Frame(notebook) frame2 = Frame(notebook)
notebook.pack(pady=15)
frame1. pack(fill=”both”, expand=1)
frame2. pack(fill=”both”, expand=1)
notebook. add(frame1, text=”frame1”)
notebook. add(frame2, text=”frame2”)
Hvis man skal ha noe på tabbene, bruker man så frame navnene istedenfor eks root
Hva gjør filter
Hvordan bruke filter med lambda
Den ser om noe i en liste er tilfelle, hvis så, filtres elementet.
Man kan for eksempel bruke dette til å legge til spesifikke ting fra en liste
list_ [“hokon”, “lars”, “hans”]
result = list(filter(lambda x: (x[0] == “h”), list_))
Dette lager en liste av ord fra listen list_, med navnene som starter på h
Regnestykke med lambda der man kan passe ting inn
cube = lambda y: yyy
print(cube(5))
Brukenlambda til å gange en liste
tables = [lambda x=x: x * 10 for x in range(1, 11)]
for table in tables:
print(table())
output: 10 30 30 ..opp til 100
Grunnen til at det står x=x, og at table() ikke har fylt inn oarameter, er fordi hvis ikke får man tilbake en instanse av en lambda funksjon, og ikke produktet sv det
Gange alle tall i en liste med lambda
numbs = list(map(lambda x: x*2, listen)
Man må bruke map, ellers får man bare instansen av lambda.
Hvordan gå til toppen av en while loop
Bruk “continue”.
Dette brukes på samme måte som feks:
“break”, “pass”