Le combobox se transforme en int
Salut, je comprends pas pourquoi mon combobox se transforme en INT, pourriez vous m'aider svp ? Concrètement que dois je faire pour passer le widget en argument de com() pour récupérer sa valeur svp ? :)
Mon code me renvoie :
.!example.!toplevel.!combobox
1280
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Anon\Anaconda3\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:/Users/Anon/.spyder-py3/AssetsManagement/Mission3.py", line 18, in <lambda>
w.config(postcommand=lambda: com(w, winMi3))
File "C:/Users/Anon/.spyder-py3/AssetsManagement/Mission3.py", line 8, in com
lb = ttk.Label(win, width=300, text=w.get(), anchor="center")
AttributeError: 'int' object has no attribute 'get'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| # -*- coding: utf-8 -*-
from tkinter import Frame, Tk, Toplevel
import tkinter.ttk as ttk
import os
def com(w, win):
print(w)
lb = ttk.Label(win, width=300, text=w.get(), anchor="center")
lb.pack()
def openMi3(root):
winMi3 = Toplevel(root)
w = ttk.Combobox(winMi3, values=['testOption1','test2'])
print(w)
w.current(newindex=0)
w.pack()
w.config(postcommand=lambda: com(w, winMi3))
bouton = ttk.Button(winMi3, text="关闭", command=winMi3.destroy)
bouton.pack()
winMi3.geometry("300x300+100+100")
def main():
root = Tk()
ex = Example(root)
root.geometry("300x300+100+100")
root.mainloop()
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
openMi3(self)
if __name__ == '__main__':
main() |