Seite 1 von 2

Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 08:50
von Jean-P.
Hallo,

bitte nicht erschrecken das ich noch ein Thema aufgemacht habe neben den 1000 die schon da sind :K

Aber meine Frage wird dort nicht beantwortet :cry:

Und zwar frage ich mich,
mit welchen Framework ich eigene Designs erstellen kann,
gemeint ist damit,
das ich nicht den Betriebssystem Look haben möchte,
sondern einen eigenes Designen wie zb. ICQ, Chrome, Winamp usw will.

Ich möchte meinen Usern auch mehrere Skins zur Auswahl bereitstellen 8)

Am liebsten wäre mir Tkinter, ist das damit möglich?

Und wenn ich schon mal dabei bin, wollte ich noch Fragen ob man die Zusatz Funktionen von QT in der Praxis brauch, oder ob man die Funktionen auch von anderen Anbietern nutzen kann?

Und eine Frage würde mich auch noch interessieren welches Framework hat die beste Performance,
ist QT viel schneller als Tkinter oder ist der unterschied nicht so groß?

Lerne Python eigentlich nur fürs Web aber wenn ich schon mal am lernen bin will ich auch gleich das richtige lernen 8)

gruß

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 10:06
von BlackJack
@Jean-P.: Ob `Tkinter` auf jedem System „theming” ermöglicht, weiss ich nicht, aber als allgemeines GUI-Toolkit würden mir da Widgets fehlen, die heutzutage eigentlich selbstverständlich sind.

Qt und Gtk kann man mit Themes versehen, wobei man im Auge behalten sollte, dass sich GUI-Toolkits um die Darstellung *innerhalb* eines Fensters kümmern. Für Rahmen und so etwas wie Titelleiste ist der Fenstermanager verantwortlich. Und der wird in der Regel vom Benutzer ausgewählt und konfiguriert. Da sollte man nicht drin herum pfuschen. Moderne Programme machen das eigentlich auch nicht mehr. Von Deinen genannten Beispielen ist das nur Chrome und die Google wird das nicht primär wegen der Optik gemacht haben, sondern weil sie den Browser möglichst systemunabhängig und grafisch gesehen schnell machen wollten. Auf der Ebene verplempert man aber als normaler Programmierer keine Zeit.

Welche Zusatzfunktionen von Qt meinst Du genau? Grundsätzlich ist das eine Entscheidung die jeder Programmierer selber treffen muss, in wie weit es ihm wichtiger ist, die Programmlogik davon frei zu halten. *Wenn* man die Qt-Bibliothek in der Programmlogik verwendet, dann sollte man auf jeden Fall auch die Qt-spezifische Funktionalität verwenden.

Was erwartest Du denn für Performance-Unterschiede bei GUI-Toolkits? Mal von Animationen abgesehen ist das doch nahezu egal, weil so ein Toolkit eigentlich immer gelangweilt auf den Benutzer wartet.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 10:50
von Jean-P.
Hi BlackJack,

danke für deine Antwort :D

Oh je das hört sich ja gar nicht gut an,
was du mir da sagst :shock: ,
so etwas sollte doch normalerweise selbstverständlich sein,
jedes tolle Programm hat ein eigenes Design(Alle Adobe Produkte, einfach alle).

Mir ist es auf jeden Fall sehr wichtig das meine Programme einen eigenen Skin bekommen,
du sagst das du dir nicht sicher bist das Tkinter das auch bei allen Plattformen unterstürzt,
bei welcher bist du dir den sicher das es geht?

Also Tkinter wäre mir schon sehr wichtig,
da es zu Python gehört und keine Drittanbieter Module zusätzlich installiert werden müssen,
und wenn man mal Software verkaufen will,
muss man auch keine Lizenzgebühren an Nokia etc zahlen :?

Naja ich weiß von C++ das Qt so einige Funktionen hat zb. Netzwerk Sachen usw.
brauch man die überhaupt in Python?
Stell mir das bisschen blöd vor wenn ich 1000 Funktionen die ich nicht brauch immer mitliefern muss :K

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 11:02
von webspider
Jean-P. hat geschrieben:Mir ist es auf jeden Fall sehr wichtig das meine Programme einen eigenen Skin bekommen
Wieso? Ich würde mir erst wenn die Funktionalität vollkommen ausgereift ist, Gedanken über sowas machen.
Was solls denn überhaupt werden wenn ich fragen darf.
Jean-P. hat geschrieben:und wenn man mal Software verkaufen will,
muss man auch keine Lizenzgebühren an Nokia etc zahlen :?
Komm erstmal so weit Software verkauft zu bekommen.
Jean-P. hat geschrieben:Stell mir das bisschen blöd vor wenn ich 1000 Funktionen die ich nicht brauch immer mitliefern muss :K
Ja, vom Verringern des Funktionsumfangs wirst du natürlich sehr viel Performance-Schub bemerken :mrgreen:
Rofl, als ob. Würdest du auf einer extremst limitierten Plattform programmieren, wo jedes bisschen an Geschwindigkeit zählt, dann vielleicht, aber dafür würdest du wohl kaum auf Python mit eigens angepasster GUI setzen.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 11:50
von snafu
Hinsichtlich Qt gibt es QStyle, sowie QCommonStyle. Zudem existiert QProxyStyle, was jedoch in keinem der beiden Python-Wrapper (PyQt und PySide) implementiert ist, also aus der Überlegung rausfallen dürfte (ggf baut man das nach).

Falls du wirklich planst, etwas ganz stylisches zu machen, ist vielleicht das relativ neue Qt Quick einen Blick wert. Dazu gibt es Beispielcode für PySide, sowie die Beschreibung einer Art Workaround, da PySide es wohl momentan noch nicht out-of-the-box unterstützt. Ich finde Qt Quick recht spannend, habe es bisher aber noch nicht genutzt (steht aber auf meiner ToDo-Liste).

Vielleicht hilft dir ja was von den Links. :)

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 12:21
von lunar
@snafu: "QStyle" kontrolliert, wie Steuerelemente gezeichnet werden, und mithin nur mittelbar, wie sie aussehen. Für einfache Oberflächenthemen ist QStyle zu aufwendig, man würde dafür Stylesheets nutzen, mit denen man unmittelbar beeinflussen kann, wie ein Steuerelement aussieht. Zudem erlauben Stylesheets auch Nutzern ohne Programmierkenntnisse, eigene Stile zu erstellen.

Der verlinkte Artikel beschreibt im Übrigen lediglich, wie man eine bestimmte QML-Bibliothek, die verschiedene hübsche Steuerelemente enthält, in PySide verwendet. Einen Workaround für ein spezielles Problem mit PySide und Qt Quick kann ich nicht erkennen, im Gegenteil, in C++ würde man genauso vorgehen.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 12:25
von snafu
Jean-P. hat geschrieben:Oh je das hört sich ja gar nicht gut an,
was du mir da sagst :shock: ,
so etwas sollte doch normalerweise selbstverständlich sein,
Naja, "selbstverständlich" ist wohl etwas übertrieben, aber der Trend geht allmählich schon etwas weg vom klassischen Design. Als Beispiele fallen mir die UIs für Smartphones ein, sowie diese neue hässliche Desktopumgebung für Ubuntu (wie hieß sie doch gleich...? :twisted: ).
Jean-P. hat geschrieben:Naja ich weiß von C++ das Qt so einige Funktionen hat zb. Netzwerk Sachen usw.
brauch man die überhaupt in Python?
Stell mir das bisschen blöd vor wenn ich 1000 Funktionen die ich nicht brauch immer mitliefern muss :K
Qt ist inzwischen (seit einigen Jahren) modular aufgebaut. Für viele Benutzeroberflächen reichen die Module QtCore und QtGui völlig aus.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 12:29
von snafu
lunar hat geschrieben:Der verlinkte Artikel beschreibt im Übrigen lediglich, wie man eine bestimmte QML-Bibliothek, die verschiedene hübsche Steuerelemente enthält, in PySide verwendet. Einen Workaround für ein spezielles Problem mit PySide und Qt Quick kann ich nicht erkennen, im Gegenteil, in C++ würde man genauso vorgehen.
Dann habe ich wohl folgendes falsch verstanden:
This PySide tutorial takes an existing PySide QML application that uses a totally custom UI, and shows how such an UI can be transformed to use a pre-made component library. In the future, it will be useful to use Qt Quick Components, but as it’s not ready yet, we are using the open source Qt Quick Colibri [projects.developer.nokia.com] library.
Ich ging davon aus, dass dieses "not ready yet" sich auf PySide bezieht.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 12:42
von lunar
@snafu: Es bezieht sich auf "Qt Quick Components", ebenfalls eine Bibliothek mit Steuerelementen für Qt Quick.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 12:46
von snafu
Ah, ok. Ich wusste nicht, dass "Qt Quick Components" nochmal ein Eigenname ist. Dachte halt eher an die Komponenten von Qt Quick... :oops:

Ach, wie auch immer. Ist jetzt nicht ganz so wichtig, das zu klären. :D

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 14:43
von Dav1d
Jean-P. hat geschrieben:Also Tkinter wäre mir schon sehr wichtig,
da es zu Python gehört und keine Drittanbieter Module zusätzlich installiert werden müssen,
Ich habe z.B. kein Tkinter installiert …

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 15:17
von Hyperion
Dav1d hat geschrieben: Ich habe z.B. kein Tkinter installiert …
War das nicht so eine unsinnige Eigenart von Debian?

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 15:34
von cofi
Hyperion hat geschrieben:
Dav1d hat geschrieben: Ich habe z.B. kein Tkinter installiert …
War das nicht so eine unsinnige Eigenart von Debian?
Der "Unsinn" hat den Hintergrund Python ohne X-Dependencies installieren zu koennen. Das macht auch bei anderen Distributionen Sinn.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 15:40
von lunar
@cofi: Und warum? Ich meine, was ist der konkrete Vorteil daran, ein paar MB X11-Client-Bibliotheken nicht installieren zu müssen?

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 15:49
von BlackJack
@lunar: Es gibt Systeme auf denen man Python haben möchte, wo aber tatsächlich jedes MiB zählt. Router zum Beispiel wo man mit wenigen MiB Flash für das System auskommen muss. Da Python oft schon zum Grundsystem gehört, würden auch die X-libs und Tk und alles was davon jeweils wieder abhängt zum Grundsystem gehören.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 16:06
von Hyperion
Das Problem hierbei ist ja nicht, dass es durchaus Szenarien geben kann, in denen eine abgespeckte Variante von Python sinnvoll ist, sondern dass es hierfür keine Spezifikation gibt. Wenn ein Anfänger hört, dass es als eingebaute GUI bereits Tk gibt, dann ist es für ihn sicherlich hinderlich, wenn er es dann bei sich nicht "findet". Wenn eine Sprache "Batteries included" anbietet, dann sollte das Standard-Paket diese auch enthalten. Der Spezialfall wäre imho hier die abgespeckte Variante.

Oder gibt es doch offizielle Spezifikationen bezüglich des Umfangs eines Paketes, welches sich "Python" nennen sollte?

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 16:35
von lunar
@BlackJack: Wenn wirklich jedes MiB zählt, wird man kaum ein unverändertes Debian verwenden... schließlich hat schon ein normaler Standardkernel mit allen Modulen ein paar Dutzend MiB.

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 16:38
von Dav1d
Hyperion hat geschrieben:
Dav1d hat geschrieben: Ich habe z.B. kein Tkinter installiert …
War das nicht so eine unsinnige Eigenart von Debian?
Wieso unsinnig?
Ich habe es auf meinem Archlinux nicht installiert und habe es bis jetzt auch nicht nachinstallieren müssen (auch kein tcl/tcltk). Selbst auf Windows muss man nur einen Haken bei der Installation entfernen im Tkinter zu überspringen.

//Edit: @lunar http://www.emdebian.org/ - Das läuft bei mir auch unter dem Begriff "Debian".

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 16:53
von Hyperion
Dav1d hat geschrieben: Wieso unsinnig?
Das solltest Du doch mittlerweile aus den Postings von mir und lunar heraus gelesen haben, oder?
Dav1d hat geschrieben: Ich habe es auf meinem Archlinux nicht installiert und habe es bis jetzt auch nicht nachinstallieren müssen (auch kein tcl/tcltk). Selbst auf Windows muss man nur einen Haken bei der Installation entfernen im Tkinter zu überspringen.
Erkennst Du den Unterschied? ;-)

Re: Welches GUI Framework für eigene Designs?

Verfasst: Sonntag 19. Februar 2012, 16:59
von BlackJack
@Hyperion: Welchen Unterschied? Du willst nicht wirklich einen Installer für Python unter Windows mit dem installieren eines kompletten Linux vergleichen, wo dann nur für Python extra eine Nachfrage kommt und fragt ob man `Tkinter` mit installieren möchte, oder nicht!? Denn Python ist normalerweise ja schon bei der Grundinstallation dabei.