質問

def alarmIDList(self, alarms):
        carAlarmIDs = []
        houseAlarmIDs = []
        alarmIDs = []
        listDefault = StringVar()
        listDefault.set("Select ID")

        for alarm in alarms:
            alarmIDs.append(alarm.getID())
            if isinstance(alarm, CarAlarm):
                carAlarmIDs.append(alarm.getID())
            elif isinstance(alarm, HouseAlarm):
                houseAlarmIDs.append(alarm.getID())

        self.alarmType = StringVar()
        self.alarmType.set("alarmIDs")
        allAlarms = ttk.Radiobutton(self.master, text="All", variable=self.alarmType,
                                    value="alarmIDs").place(x=10, y=30)
        carAlarms = ttk.Radiobutton(self.master, text="Car Alarms", variable=self.alarmType,
                                    value="carAlarmIDs").place(x=10, y=50)
        houseAlarms = ttk.Radiobutton(self.master, text="House Alarms", variable=self.alarmType,
                                    value="houseAlarmIDs").place(x=10, y=70)

        cbox = ttk.Combobox(self.master, textvariable=listDefault,
                            state='readonly', height=10, width=10)

        if self.alarmType.get() == "alarmIDs":
            cbox['values'] = alarmIDs
        elif self.alarmType.get() == "carAlarmIDs":
            cbox['values'] = carAlarmIDs
        elif self.alarmType.get() == "houseAlarmIDs":
            cbox['values'] = houseAlarmIDs

        cbox.place(x = 120, y = 75)
.

これまでに持っているものです、私はおそらくループに入れたり、価値を変えるための何かを置く必要があると思いますが、私はそれをする方法がわかりません。私は今何長い間これをやろうとしていました。ありがとう

役に立ちましたか?

解決

RadioButtonsにコマンドを与えることによってこの問題を解決することができました:

def allAlarms():
    listDefault.set("Select ID")
    cbox['values'] = alarmIDs
def carAlarms():
    listDefault.set("Select ID")
    cbox['values'] = carAlarmIDs
def houseAlarms():
    listDefault.set("Select ID")
    cbox['values'] = houseAlarmIDs

allAlarms = ttk.Radiobutton(self.master, text="All", variable=self.alarmType,
                            value="alarmIDs", command=allAlarms).place(x=10, y=30)

carAlarms = ttk.Radiobutton(self.master, text="Car Alarms", variable=self.alarmType,
                            value="carAlarmIDs", command=carAlarms).place(x=10, y=50)

houseAlarms = ttk.Radiobutton(self.master, text="House Alarms", variable=self.alarmType,
                              value="houseAlarmIDs", command=houseAlarms).place(x=10, y=70)
.

関数を使用せずに、これをやることはおそらくより良い方法ですが、これは正確にそれが行うことを意味します。これが同じ問題を抱えている人に役立つことができることを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top