2016-12-22 2 views
1

Ich habe versucht, PyQt5 von pip sowie apt (python3-pyqt5) auf dem gleichen System. Beide Versionen führen zu verschiedenen Themen (die Bilder sind unten).Wie repariere ich Theme für PyQt5-Anwendungen?

Ich habe versucht, die Umgebungsvariable QT_STYLE_OVERRIDE auf "GTK" sowie "GTK +" einzustellen, konnte aber nicht das native Aussehen bekommen.

Ich bin neugierig, warum das passiert. Wie kann ich die Verwendung von QGtkStyle erzwingen? Andere native Apps wie Clementine, VLC, Zeal arbeiten mit dem QGtkStyle-Thema und mischen sich auch nach dem Gnome-Shell-Thema.

Nach einigen Online-Anweisungen habe ich versucht, qt5-style-plugins, die nicht gtk Thema hat.

Installiert von Pip (QFusionStyle):

installed from pip

von apt installiert (QGtkStyle):

installed from apt

+0

Versuchen Sie, DESKTOP_SESSION – Schollii

+0

nicht funktioniert gtk aktiviert wird. QT_QPA_PLATFORMTHEME ist in beiden Fällen das gleiche "appmenu-qt5", und DESKTOP_SESSION ist "ubuntu" –

+0

@HimanshuShekhar. Du sagst "beide Versionen ergeben unterschiedliche Themen" - aber anders als * was *? Ist * entweder * von ihnen, was du erwartet hast? Oder gibt es einen anderen Stil, den Sie erwartet haben, von dem Sie uns nichts erzählt haben? Zeigen Sie einen Screenshot einer "normalen" Qt-Anwendung (d. H. Keine PyQt5-Anwendung) mit dem von Ihnen erwarteten Stil. – ekhumoro

Antwort

0

Dies ist für einen Kommentar sind ein wenig lang immer so hier einige Dinge zu versuchen:

  • S etting DESKTOP_SESSION (hat in Ihrem Fall nicht geholfen)
  • Drucken Sie QApplication.style() .metaObject(). className(), sehen Sie, ob es für beide Läufe gleich ist. Möglicherweise gibt es andere nützliche Eigenschaften für das Stilobjekt. Auch
  • Drucken QStyleFactory.keys(), die QT_STYLE_OVERRIDE muss einer der gedruckten Werte sein.
  • Blick auf Uniform look for Qt and GTK applications
  • Die --style Option überschreibt QT_STYLE_OVERRIDE
  • Es Einstellung ein Plugin Stil sein könnte, die in einer der Anlagen
+0

Das Ergebnis von style() .metaObject(). ClassName() im ersten Fall ist QFusionStyle, und als zweites ist QGtkStyle. Wenn ich eine Zeichenfolge über den Parameter "style" versuche, führt dies zu QWindowsStyle. Wie kann ich QGtkStyle erzwingen? Ich bin auf der Suche nach einem Weg, der das Ändern von Gnome-Shell-Thema auch auf die Anwendung wirksam macht. Clementine, VLC arbeiten so. Ich suche den gleichen Weg hier. Hilfe wäre spürbar. Danke –

+0

Sieht aus wie Qt spezifisches Problem. https://github.com/manjaro/release-plan/issues/73 –

+0

@HimanshuShekhar. Ich habe bereits erklärt, warum Sie den Standard-Fusion-Stil mit Pip-Installationen bekommen. Sie müssen das gewünschte Style-Plugin zu der Kopie von Qt5 hinzufügen, die vom Rad installiert wird. – ekhumoro

Verwandte Themen