Im ListIconGadget die erste Zeile markieren

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Im ListIconGadget die erste Zeile markieren

Beitrag von legion »

Hallo !
Ich habe eine Möglichkeit gesucht beim Start die erste Zeile eines ListIconGadget unter
Linux zu markieren. In diesem Beispiel wird ein Tastendruck auf die Pfeil nach Rechts Taste
simuliert. Ich nehme an es gibt eine elegantere Lösung ?!

Code: Alles auswählen

ImportC ""
  XOpenDisplay(*display)
  XFlush(display)
EndImport

ImportC "/usr/lib/x86_64-linux-gnu/libXtst.so.6"
  XTestFakeKeyEvent(display, keycode, is_press, delay)
EndImport

Procedure SendKey()
  Protected *display = XOpenDisplay(0)
  XTestFakeKeyEvent(*display, 114, #True, 0) ; 114 = Pfeil nach rechts
  XTestFakeKeyEvent(*display, 114, #False, 0)
  XFlush(*display)
EndProcedure

Procedure OpenWindow_0(x = 0, y = 0, width = 1000, height = 600)
    OpenWindow(#PB_Any, x, y, width, height, "ListIcon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ListIconGadget(0, 0, 0, 1750, 950, "ID", 80, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(0, 1, "Datum", 150)
    AddGadgetColumn(0, 2, "Uhrzeit", 150)
    AddGadgetColumn(0, 3, "Temperatur °C", 200)
    AddGadgetColumn(0, 4, "Luftfeuchte %", 200)
    AddGadgetColumn(0, 5, "Luftdruck hPa", 200)
    AddGadgetItem(0, -1, "1" +Chr(10)+"14.06.2018"+Chr(10)+"23:15:46"+Chr(10)+"16.2"+Chr(10)+"68"+Chr(10)+"1024")
    AddGadgetItem(0, -1, "2" +Chr(10)+"14.06.2018"+Chr(10)+"23:17:22"+Chr(10)+"16.5"+Chr(10)+"68"+Chr(10)+"1024")
    SetActiveGadget(0)
    SendKey()
EndProcedure

OpenWindow_0()
Repeat 
Until WaitWindowEvent() = #PB_Event_CloseWindow
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Im ListIconGadget die erste Zeile markieren

Beitrag von Sicro »

Da hast du dir zu viel Aufwand gemacht. Das reicht aus:

Code: Alles auswählen

SetGadgetState(0, 0) ; Markiert die erste Zeile
Bei mir reicht aber schon der Aufruf von SetActiveGadget(0), damit die erste Zeile markiert ist (gtk3/gtk2), außer mit Qt.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Re: Im ListIconGadget die erste Zeile markieren

Beitrag von legion »

Danke für den Tipp !
Hab den Fehler in meiner Anwendung gefunden !
Nach dem Schreiben ins ListIconGadget muss SetGadgetState aufgerufen werden !
So funktioniert es nicht ...

Code: Alles auswählen

Procedure OpenWindow_0(x = 0, y = 0, width = 1000, height = 600)
    OpenWindow(#PB_Any, x, y, width, height, "ListIcon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ListIconGadget(0, 0, 0, 1750, 950, "ID", 80, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(0, 1, "Datum", 150)
    AddGadgetColumn(0, 2, "Uhrzeit", 150)
    AddGadgetColumn(0, 3, "Temperatur °C", 200)
    AddGadgetColumn(0, 4, "Luftfeuchte %", 200)
    AddGadgetColumn(0, 5, "Luftdruck hPa", 200)
    SetActiveGadget(0)
    SetGadgetState(0,0)
EndProcedure

OpenWindow_0()
AddGadgetItem(0, -1, "1" +Chr(10)+"14.06.2018"+Chr(10)+"23:15:46"+Chr(10)+"16.2"+Chr(10)+"68"+Chr(10)+"1024")
AddGadgetItem(0, -1, "2" +Chr(10)+"14.06.2018"+Chr(10)+"23:17:22"+Chr(10)+"16.5"+Chr(10)+"68"+Chr(10)+"1024")
;SetGadgetState(0,0)
Repeat 
Until WaitWindowEvent() = #PB_Event_CloseWindow
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
Antworten