Qt und PyQt zusammen? Oder wie Qt in Blender verwenden?

Verschiedenes zu Qt
Antworten
Tiles
Beiträge: 3
Registriert: 9. Mai 2016 17:56

Qt und PyQt zusammen? Oder wie Qt in Blender verwenden?

Beitrag von Tiles »

Hallo zusammen,

Vorweg, ich bin absoluter Anfänger mit Qt. Habt also ein wenig Geduld mit mir ^^

Vielleicht kennen einige von euch die 3D Software Blender. Damit kann man 3D Grafiken anfertigen. https://www.blender.org/

Blender hat seine ganz eigene selbstgemachte UI Lösung. Die meiner Meinung nach viel besser sein könnte. Sie ist zu limitiert, zu schwer zu modifizieren, und alles andere als Intuitiv. Genau das will ich ändern. Dafür möchte ich Qt in Blender integrieren. Um eben diese Limits loszuwerden.

Das Problem ist, die Blender UI Lösung ist ein recht wilder Mix aus C, OpenGl und Python. Damit ich die Addons auch weiterhin verwenden kann müsste ich allerdings bei Python bleiben und die Code Struktur anbieten. Sonst klemme ich die Addons ab. Was ich nicht machen darf weil selbst so manch Core Funktionalität als Addon kommt. Also habe ich mal mit PyQt5 angefangen.

Allerdings sehe ich im Moment noch keine Möglichkeit wie ich damit überhaupt an die vitalen Teile rankommen soll. Ich werde zwar wohl an einem Punkt zumindest an die Funktionalität rankommen*, das habe ich schon bei anderen Entwicklern gesehen, die das mit einem floating Panel getan haben. Aber wie gesagt ist die derzeitige Blender UI eben ein Mix aus C, Python und OpenGL. Die UI besteht aus mehreren OpenGL Editoren und Subpaneln. Und ich habe keine Ahnung wie ich da PyQt integrieren soll. Über Floating Panels geht ja da nicht. Ich kann ja schlecht den User nach jedem Klick erst mal die UI Elemente sortieren lassen ^^

* Wie gesagt bin ich noch absoluter Anfänger. Ich arbeite mich im Moment durch einige PyQt5 Tutorials durch. Und bisher habe ich es geschafft PyQt5 mit Blender zu verknüpfen. Und es zeigt sich ein erster Panel. Der hat allerdings im Moment noch keine Verbindung zum Rest, ausser wenn man Close klickt. Was dann Blender schliesst. Und er ist Modal. Blender reagiert nicht mehr.

Um es kurz zu machen, ich weiss im Moment nicht wie es von hier aus weitergehen soll :)

Was wäre denn die sauberste Lösung um Qt/ PyQt in Blender integriert zu bekommen? Bin ich überhaupt auf der richtigen Spur mit PyQt5? Brauche ich vielleicht beides? Qt und PyQt? Ist es überhaupt möglich Qt in Blender zu integrieren ohne das Ding in grossen Teilen neu zu schreiben?

Wärt ihr so Nett mir da ein wenig auf die Sprünge zu helfen? :)
Tiles
Beiträge: 3
Registriert: 9. Mai 2016 17:56

Re: Qt und PyQt zusammen? Oder wie Qt in Blender verwenden?

Beitrag von Tiles »

Mh, ich habe wo anders folgende Anweisung bekommen:
I would suggest just adding the qapplication layer and wrap a qmainwindow around each blender window.
Wie mache ich denn sowas? :)
sowas
Beiträge: 105
Registriert: 19. September 2006 16:02

Re: Qt und PyQt zusammen? Oder wie Qt in Blender verwenden?

Beitrag von sowas »

das ist sicher ein sehr großes Projekt was du vorhast, sicherlich sind auch andere deiner Meinung. Wie man im Netz feststellen kann, ist die Blender-Community sehr aktiv. Ich würde erst dort anschauen wie Blender mit Skripten gesteuert wird, aber laut Blender ist Benutzeroberfläche vollständing in OpenGL implementiert. Da sehe ich die
meiste Arbeit wenn du was ändern willst.
Tiles
Beiträge: 3
Registriert: 9. Mai 2016 17:56

Re: Qt und PyQt zusammen? Oder wie Qt in Blender verwenden?

Beitrag von Tiles »

Hi sowas,

Dass ich da eine Monsteraufgabe am Wickel habe weiss ich ^^

Ja das ist OpenGl. Das ist aber auch Python. Und C. Ein ganz schwieriges Gemenge. Ich finde da wie gesagt einfach keinen Einstieg wie ich Qt sinnvoll mit Blender verknüpfen könnte. Mit PyQt komme ich meines Wissens nach nicht in die Editoren rein. Mit nativer Implementation verliere ich die Plugins. Was doof ist weil einige wichtige Sachen als Plugin implementiert sind. Der Cycles Renderer zum Beispiel. Und ich stehe ja auch noch ganz am Anfang bei Qt.

Die Blender Community wird mir bei dem Problem leider nicht weiterhelfen. Die Entwickler haben andere Pläne, und werden niemanden unterstützen der Qt einbauen will. Und bei der Fanbase sieht es nicht anders aus. Da bin ich auf mich allein gestellt.

Na mal sehen ob sich doch noch was ergibt. Danke für dein Feedback :)
Antworten