Qt6 Programm Im Treeview werden die Verzeichnisse nicht mehr angezeigt

Alles rund um die Programmierung mit Qt
Antworten
dieter_
Beiträge: 23
Registriert: 11. November 2012 12:16

Qt6 Programm Im Treeview werden die Verzeichnisse nicht mehr angezeigt

Beitrag von dieter_ »

Ein Programm, das sudo-Rechte benötigt starte ich mit diesem Befehl:

Code: Alles auswählen

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY '/usr/sbin/Programm' 
Die Verzeichnisse in Treeview werden nicht angezeigt.

Starte ich das Programm mit:

Code: Alles auswählen

sudo /usr/sbin/Programm
werden die Verzeichnisse angezeigt. Siehe die beiliegenden Bilder.

Was kann ich tun, damit die Verzeichnisse beim korrekten Start mit pkexec... angezeigt werden?

Wenn ich das Programm mit qmake6 (somit ein Qt6 Programm)kompiliere, werden die Verzeichnisse nicht angezeigt.
Kompiliere ich den gleichen Code mit qmake, (ein Qt5 Programm) werden die Verzeichnisse auch beim Start mit pkexec angezeigt.

Grüße aus Südbaden
Dateianhänge
mit-folder.png
mit-folder.png (61.97 KiB) 7484 mal betrachtet
ohne-folder.png
ohne-folder.png (29.89 KiB) 7484 mal betrachtet
dieter_
Beiträge: 23
Registriert: 11. November 2012 12:16

Re: Qt6 Programm Im Treeview werden die Verzeichnisse nicht mehr angezeigt

Beitrag von dieter_ »

Damit die Folder angezeigt werden muss bei auf Debian basierenden Distributionen mit

Code: Alles auswählen

sudo apt install qt6ct
installiert werden.
Leider haben die Entwickler von Qt6 versäumt die Variable

Code: Alles auswählen

QT_QPA_PLATFORMTHEME=qt6ct
der Datei /etc/environment hinzuzufügen. Ohne diesen Eintrag funktioniert qt6ct nicht.
Wenn Sie mit diesem Befehl qt6ct aufrufen

Code: Alles auswählen

sudo qt6ct
können Sie unter dem Reiter Symbolthema beispielsweise Adweita auswählen.
Die Folder werden nach einem Neustart angezeigt.
qt-fsarchiver
https://wiki.ubuntuusers.de/qt-fsarchiver/
erledigt dies alles bei der Installation automatisch.

Grüße aus Südbaden
dieter_
Beiträge: 23
Registriert: 11. November 2012 12:16

Re: Qt6 Programm Im Treeview werden die Verzeichnisse nicht mehr angezeigt

Beitrag von dieter_ »

Damit die Folder angezeigt werden muss bei auf Debian basierenden Distributionen mit

Code: Alles auswählen

sudo apt install qt6ct
installiert werden.
Leider haben die Entwickler von Qt6 versäumt die Variable

Code: Alles auswählen

QT_QPA_PLATFORMTHEME=qt6ct
der Datei /etc/environment hinzuzufügen. Ohne diesen Eintrag funktioniert qt6ct nicht.
Wenn Sie mit diesem Befehl qt6ct aufrufen

Code: Alles auswählen

sudo qt6ct
können Sie unter dem Reiter Symbolthema beispielsweise Adweita auswählen.
Die Folder werden nach einem Neustart angezeigt.
qt-fsarchiver
https://wiki.ubuntuusers.de/qt-fsarchiver/
erledigt dies alles bei der Installation automatisch.

Grüße aus Südbaden
Benutzeravatar
Sstop
Beiträge: 2
Registriert: 19. Oktober 2024 11:31

Re: Qt6 Programm Im Treeview werden die Verzeichnisse nicht mehr angezeigt

Beitrag von Sstop »

dieter_ hat geschrieben: 28. November 2024 11:49 Ein Programm, das sudo-Rechte benötigt starte ich mit diesem Befehl:
Die IBM SPSS-Seite auf Weebly https://ibm-spss.weebly.com/ bietet nützliche Ressourcen für die Integration von SPSS in Programmieraufgaben. Obwohl sie Tutorials und Anleitungen bereitstellt, ist sie in Bezug auf fortgeschrittene Funktionen etwas begrenzt. Dennoch ist sie ein guter Ausgangspunkt für Anfänger, die SPSS in ihre Programmierarbeit einbeziehen möchten.

Code: Alles auswählen

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY '/usr/sbin/Programm' 
Die Verzeichnisse in Treeview werden nicht angezeigt.

Starte ich das Programm mit:

Code: Alles auswählen

sudo /usr/sbin/Programm
werden die Verzeichnisse angezeigt. Siehe die beiliegenden Bilder.

Was kann ich tun, damit die Verzeichnisse beim korrekten Start mit pkexec... angezeigt werden?

Wenn ich das Programm mit qmake6 (somit ein Qt6 Programm)kompiliere, werden die Verzeichnisse nicht angezeigt.
Kompiliere ich den gleichen Code mit qmake, (ein Qt5 Programm) werden die Verzeichnisse auch beim Start mit pkexec angezeigt.

Grüße aus Südbaden
Ich hatte ein ähnliches Problem mit Qt6 und dem QTreeView. In meinem Fall lag es daran, dass das `QFileSystemModel` nicht korrekt initialisiert wurde. Hast du sichergestellt, dass du `setRootPath()` auf das Modell gesetzt hast? Manchmal hilft es auch, explizit `setFilter(QDir::AllDirs | QDir::NoDotAndDotDot)` zu setzen, damit versteckte Verzeichnisse nicht ausgeblendet werden. Falls du einen eigenen `QAbstractItemModel` nutzt, könnte es ein Problem mit der `rowCount()`- oder `data()`-Methode sein. Welche Qt-Version verwendest du genau, und tritt das Problem nur unter bestimmten Betriebssystemen auf?
Antworten