Seite 1 von 1

CheckBox mit #PB_CheckBox_ThreeState in QT

Verfasst: 22.02.2024 12:35
von matbal
Wenn ich von einer CheckBox mit dem Flag #PB_CheckBox_ThreeState den Status ermitteln will, bekomme ich nicht immer das richtige Ergebnis.

Beim ersten mal, wenn ich vom Undefinierten Zustand aus das Häkchen setze, bekomme ich das richtige Resultat 1 (= #PB_CheckBox_Checked). Wenn dich das Häkchen wiederholt setze, erhalte ich -1 (= #PB_Checkbox_Inbetween).

Das Problem habe ich nur unter QT. (Manjaro Linux KDE)

Code: Alles auswählen

#win = 0
#checkbox = 1


Procedure onCheckbox()
   Debug GetGadgetState(EventGadget())
EndProcedure


OpenWindow(#win, 100, 100, 300, 200, "Test", #PB_Window_SystemMenu)

CheckBoxGadget(#checkbox, 10, 10, 200, 20, "Checkbox ThreeState", #PB_CheckBox_ThreeState)
SetGadgetState(#checkbox, #PB_Checkbox_Inbetween)

BindGadgetEvent(#checkbox, @onCheckbox())

Repeat
   event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow

Re: CheckBox mit #PB_CheckBox_ThreeState in QT

Verfasst: 22.02.2024 15:34
von Macros
Das Problem kann ich bestätigen. (Kubuntu 23.04, KDE, PB 6.03)

Wenn ich den undefinierten Zustand auskommentiere, erhalte ich gleich beim ersten mal ein -1.

Schaut sehr verdächtig nach Bug aus und sollte man wohl im englischen Forum melden.

Re: CheckBox mit #PB_CheckBox_ThreeState in QT

Verfasst: 23.02.2024 00:53
von TroaX
Kann ich auch bestätigen. Pop_OS! 22.04, Gnome, PB 6.04

Ich vermute mal, das Problem liegt am setzen des States durch das Gadget selbst. Folgende Werte soll er ausgeben.

Code: Alles auswählen

Debug #PB_Checkbox_Inbetween  ;-1
Debug #PB_Checkbox_Checked  ;1
Debug #PB_Checkbox_Unchecked  ;0
Hier scheint aus welchem Grund auch immer beim betätigen der Checkbox der State zwischen Unchecked und Inbetween zu wechseln, obwohl in der Doku der Inbetween State nur per SetGadgetState zu setzen sein soll. Beim ersten betätigen hingegen bekommt PB das richtig hin. Aber bei jedem weiteren mal nicht, obwohl klar der Haken gesetzt wird. Irgendwie komisch das Verhalten. :shock: