我在互聯網上看過,但我無法前進。在這里,我有一個組合框,其中包含我在組合框中顯示的檔案名串列。在組合框中選擇后,我想獲得選定的值。函式 valeurList 有效,我嘗試過其他值。我也嘗試過在 ttk.Combobox 中使用 textvariable,但沒有成功。它回傳一些東西,但它是空白的......這是我的代碼:
from tarfile import PAX_FIELDS
import tkinter as tk
from tkinter import CENTER, ttk
from turtle import bgcolor, width
from dataAcquire import listAcquire
from dataMeasure import Acquisitions
import dataAcquire
import dataMeasure
from numpy import pad, size
dataAcquire.listAcquire()
sensorList=["Température", "CO2", "CO", "Humidité", "Bruit", "Vibrations"]
def valeurList():
dataAcquire.recupName(current_value)
#create window
root = tk.Tk()
root.title("HarshSensor - Calcul de vos points de pénibilité")
root.geometry("950x600")
root.iconphoto(False, tk.PhotoImage(file='./image/icone.png'))
#create 2 frames
frame1 = tk.Frame(root, pady=30)
frame1.pack()
frame2 = tk.Frame(root)
frame2.pack()
#Label date et heure et boutton refresh
labelDH = tk.Label(frame1, text="Choisissez l'acquisition : ", padx=30)
labelDH.pack(side="left")
liste = ttk.Combobox(frame1, values=Acquisitions.listAcquisitions, state="readonly")
liste.pack(side="left", padx=20)
current_value=liste.get()
refresh = tk.Button(frame1, text="Refresh", command=valeurList)
refresh.pack(side="left")
uj5u.com熱心網友回復:
您需要將textvariable型別的屬性傳遞tk.StringVar給Combobox建構式,并且每當您更改組合框中的選擇時,此變數都會更新。
uj5u.com熱心網友回復:
我認為您需要在組合框中將狀態更改為“正常”。然后,此示例應獲取您的值,將其存盤在變數 current_value 中,然后在您從按鈕單擊呼叫 valuerList 時列印該值。
from tarfile import PAX_FIELDS
import tkinter as tk
from tkinter import CENTER, ttk
from turtle import bgcolor, width
from dataAcquire import listAcquire
from dataMeasure import Acquisitions
import dataAcquire
import dataMeasure
from numpy import pad, size
dataAcquire.listAcquire()
sensorList=["Température", "CO2", "CO", "Humidité", "Bruit", "Vibrations"]
def valeurList():
current_value = liste.get() #this will get the information from the combobox
liste.delete("0", tk.END) # this will clear the field after button click
dataAcquire.recupName(current_value)
print(current_value)
#create window
root = tk.Tk()
root.title("HarshSensor - Calcul de vos points de pénibilité")
root.geometry("950x600")
root.iconphoto(False, tk.PhotoImage(file='./image/icone.png'))
#create 2 frames
frame1 = tk.Frame(root, pady=30)
frame1.pack()
frame2 = tk.Frame(root)
frame2.pack()
#Label date et heure et boutton refresh
labelDH = tk.Label(frame1, text="Choisissez l'acquisition : ", padx=30)
labelDH.pack(side="left")
liste = ttk.Combobox(frame1, values=Acquisitions.listAcquisitions,
textvariable=tk.StringVar(), state="normal")# changed your state to normal
liste.pack(side="left", padx=20)
refresh = tk.Button(frame1, text="Refresh", command=valeurList)
refresh.pack(side="left")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/469153.html
