Schönheitsfehler: ComboBox unter Linux
Schönheitsfehler: ComboBox unter Linux
Wenn die ComboBox so viele Einträge hat, dass nicht sämtliche Einträge angezeigt werden können, dann wird die Liste mit den Einträgen nach dem Ausklappen nach oben verschoben, um den Platz besser auszunutzen. Das ist ja eigentlich völlig OK, aber weil die Liste sich dabei über die ComboBox schiebt, geraten die Einträge zwangsläufig unter den Mauszeiger, und schon wird ein anderer Eintrag aktiviert als der ursprünglich vorgewählte Eintrag.
Also angenommen, die ComboBox hat nur 10 Einträge und der 5. Eintrag ist vorgewählt. Wenn man auf den Pfeil klickt, klappt die Liste UNTERHALB der ComboBox auf, und der 5. Eintrag ist "gehighlightet".
Angenommen, die ComboBox hat 70 Einträge und der 30. Eintrag ist vorgewählt. Wenn man auf den Pfeil klickt, klappt die Liste auf, und weil sie so lang ist, wird nur ein Teil der Liste dargestellt, und das obere Ende davon wird so hoch platziert, dass die ComboBox von der Liste bedeckt ist und der Cursor dadurch zwangsläufig einen der obersten Einträge "highlightet". Wenn man jetzt z.B. den 31. Eintrag auswählen möchte, muss man erst wieder entsprechend weit runterscrollen.
Ich hoffe, ich habe mich verständlich ausgedrückt, anderenfalls müsste ich irgendwo einen Screenshot hochladen.
Unter Windows tritt dies nicht auf, da werden auch lange Listen je nach Platz verkleinert und korrekt über oder unter der ComboBox dargestellt, ohne sie zu überdecken.
Ein weiterer Schönheitsfehler, der nur unter Linux (Mint 19.3) auftritt: die Einträge der ausgeklappten Liste haben unnötig größe Zwischenräume.
Also angenommen, die ComboBox hat nur 10 Einträge und der 5. Eintrag ist vorgewählt. Wenn man auf den Pfeil klickt, klappt die Liste UNTERHALB der ComboBox auf, und der 5. Eintrag ist "gehighlightet".
Angenommen, die ComboBox hat 70 Einträge und der 30. Eintrag ist vorgewählt. Wenn man auf den Pfeil klickt, klappt die Liste auf, und weil sie so lang ist, wird nur ein Teil der Liste dargestellt, und das obere Ende davon wird so hoch platziert, dass die ComboBox von der Liste bedeckt ist und der Cursor dadurch zwangsläufig einen der obersten Einträge "highlightet". Wenn man jetzt z.B. den 31. Eintrag auswählen möchte, muss man erst wieder entsprechend weit runterscrollen.
Ich hoffe, ich habe mich verständlich ausgedrückt, anderenfalls müsste ich irgendwo einen Screenshot hochladen.
Unter Windows tritt dies nicht auf, da werden auch lange Listen je nach Platz verkleinert und korrekt über oder unter der ComboBox dargestellt, ohne sie zu überdecken.
Ein weiterer Schönheitsfehler, der nur unter Linux (Mint 19.3) auftritt: die Einträge der ausgeklappten Liste haben unnötig größe Zwischenräume.
Re: Schönheitsfehler: ComboBox unter Linux
Hallo Plenz
Kann das von dir beschrieben Verhalten nicht nachvollziehen. Ich verwende Ubuntu Mate
das Beisiel aus der Hilfe öffnet immer den voreingestellten Eintrag.
Sollt das nicht so gehen liegt das Problem an Mint 19.3
Walter
Kann das von dir beschrieben Verhalten nicht nachvollziehen. Ich verwende Ubuntu Mate
das Beisiel aus der Hilfe öffnet immer den voreingestellten Eintrag.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 180, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboBoxGadget(2, 10, 70, 250, 21)
For a = 0 To 100
AddGadgetItem(2, -1,"ComboBox item " + Str(a))
Next
SetGadgetState(2, 49)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Re: Schönheitsfehler: ComboBox unter Linux
Zugegeben, ich weiß nicht viel über Linux, aber es würde mich sehr wundern, wenn Sachen wie die Darstellung einer Combobox bei jeder Distribution neu programmiert werden müsste.liegt das Problem an Mint 19.3
Re: Schönheitsfehler: ComboBox unter Linux
mich auch?
was hat der Test mit meinem Code ergeben??
Walter
was hat der Test mit meinem Code ergeben??
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Re: Schönheitsfehler: ComboBox unter Linux
Bei Ubuntu, das eigentlich auch die Basic von Mint ist, tritt diese nicht auf.
Auch bei einer sehr langen liste, ist das vorgewählte Item aktiv.
Nicht vergessen auch den EventType() beim Gadget Event abzufragen.
P.S.
Habe es mal mit Mint 19 (Cinnamon v3.8.9) getestet. Auch hier ist das aktive Item selektiert.
Muss also wo anders dran liegen.
Auch bei einer sehr langen liste, ist das vorgewählte Item aktiv.
Nicht vergessen auch den EventType() beim Gadget Event abzufragen.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 180, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboBoxGadget(2, 10, 70, 250, 21)
For a = 0 To 50
AddGadgetItem(2, -1,"ComboBox item " + Str(a))
Next
SetGadgetState(2, 25)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 2
Select EventType()
Case #PB_EventType_Change
Debug "Change: " + GetGadgetState(2)
Case #PB_EventType_Focus
Debug "Focus"
Case #PB_EventType_LostFocus
Debug "LostFocus"
EndSelect
EndSelect
EndSelect
ForEver
EndIf
Habe es mal mit Mint 19 (Cinnamon v3.8.9) getestet. Auch hier ist das aktive Item selektiert.
Muss also wo anders dran liegen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Schönheitsfehler: ComboBox unter Linux
Ich verstehe es nicht. Dein Beispiel funktioniert einwandfrei.
Auf die Repeat-Schleife kommt es gar nicht an, die kann ich komplett leer machen, es ändert nichts.
Versuche bitte mal meinen Code:
Bevor du auf die ComboBox klickst, schiebe das Fenster so weit nach unten, dass sein unterer Rand gerade noch sichtbar ist. Sollte das Phänomen nicht auftreten, verschiebe das Fenster mal eine halbe Zeile nach oben.
Auf die Repeat-Schleife kommt es gar nicht an, die kann ich komplett leer machen, es ändert nichts.
Versuche bitte mal meinen Code:
Code: Alles auswählen
If OpenWindow(0, 100, 100, 1010, 590, "Thumbnails", #PB_Window_SystemMenu)
l = 5 : w = 100
ButtonGadget(1, l, 5, w, 35, "Hintergrund")
l = l + w + 5
ButtonGadget(3, l, 5, w, 35, "neuer Text")
l = l + w + 5 : w = 230
StringGadget(4, l, 6, w, 34, "")
l = l + w + 5 : w = 85
ButtonGadget(5, l, 5, w, 35, "Textfarbe")
l = l + w + 5 : w = 95
ComboBoxGadget(6, l, 6, w, 34, #PB_ComboBox_Editable)
For i = 0 To 90
AddGadgetItem(6, -1, Str(i) + " Px")
Next
SetGadgetState(6, 30)
l = l + w + 5 : w = 75
CheckBoxGadget(7, l, 2, w, 15, "Fett")
CheckBoxGadget(8, l, 22, w, 15, "2. Zeile")
l = l + w + 5 : w = 85
ButtonGadget(9, l, 5, w, 35, "ordnen")
w = 95 : l = 1010 - w - 105
ButtonGadget(10, l, 5, w, 35, "alles neu")
w = 95 : l = 1010 - w - 5
ButtonGadget(13, l, 5, w, 35, "Speichern")
CanvasGadget(12, 5, 45, 960, 540, #PB_Canvas_Border)
TrackBarGadget(11, 970, 45, 30, 540, 0, 20, #PB_TrackBar_Vertical | #PB_TrackBar_Ticks)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow ; If the user has pressed on the close button
EndIf
End
Re: Schönheitsfehler: ComboBox unter Linux
Ist ne Macke mit dem Flag "#PB_ComboBox_Editable". Da funktioniert wohl die Auswahlbox etwas andern ...
Ne Lösung habe ich zur Zeit nicht. (Ausser das Flag "#PB_ComboBox_Editable" weg zu lassen)
Kleiner tipp noch.
GTK3 Erstellt die ButtonGadget größer als den angegebenen Wert, wenn der Text nicht rein Passt.
Daher sind manchmal die Gadget überlappend.
Ne Lösung habe ich zur Zeit nicht. (Ausser das Flag "#PB_ComboBox_Editable" weg zu lassen)
Kleiner tipp noch.
GTK3 Erstellt die ButtonGadget größer als den angegebenen Wert, wenn der Text nicht rein Passt.
Daher sind manchmal die Gadget überlappend.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Schönheitsfehler: ComboBox unter Linux
Also, ich sehe nicht, dass sich etwas ändert, wenn ich den Flag "#PB_ComboBox_Editable" weglasse.
Aber so wichtig ist das nicht, deshalb habe ich ja "Schönheitsfehler" geschrieben und nicht "Bug".
Die Lösung ist für mich, die Anzahl der Einträge zu reduzieren. Die Auswahl soll die Fontgröße für Texte festlegen, da kann man zwischen den größeren Zahlen ruhig ein paar Werte weglassen. Auf diese Weise komme ich jetzt auf ca. 20 Einträge, und dabei tritt dieses Phänomen nicht auf.
Aber so wichtig ist das nicht, deshalb habe ich ja "Schönheitsfehler" geschrieben und nicht "Bug".
Die Lösung ist für mich, die Anzahl der Einträge zu reduzieren. Die Auswahl soll die Fontgröße für Texte festlegen, da kann man zwischen den größeren Zahlen ruhig ein paar Werte weglassen. Auf diese Weise komme ich jetzt auf ca. 20 Einträge, und dabei tritt dieses Phänomen nicht auf.