GUI Builder

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

GUI Builder

Beitragvon apollo13 » Donnerstag 1. Mai 2008, 22:52

Schau dir doch mal http://wxformbuilder.org/ an. Den finde ich wirklich super, zumindest solange man mit xrc arbeitet...

Edit (Leonidas): Von "parsen oder filtern" abgetrennt.
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Beitragvon The Hit-Man » Freitag 2. Mai 2008, 08:35

joar, der sieht gut aus.

Den finde ich wirklich super, zumindest solange man mit xrc arbeitet...


aber was ist xrc? so ähnlich wie nen glade file? habe damit noch nie etwas gemacht.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 2. Mai 2008, 09:53

The Hit-Man hat geschrieben:wie machst du deine fenster und in welcher IDE programmierst du? sag jetzt bitte nicht, du codest im emacs, oder der gleichen :(

Emacs nutze ich auch, aber nicht für Python. Für Python nutze ich vim. GUI Builder verwende ich eigentlich nicht, weil ich so komplizierte GUIs nicht baue. Ab und zu starte ich mal Glade oder Gazpacho hoch, aber ich habe schon lange Zeit keine GUIs mehr gebaut. Warum diese? Weil sie Interface-Dateien bearbeiten (Glade-Dateien). Unter wx entsprechen diese den XRC-Dateien, die bei meinen Tests nur XRCed halbwegs brauchbar editieren konnte.

Ansonsten nutze ich gerne IPython, möglicherweise ist bPython auch eine gute Alternative - kenne es aber erst seit gerstern, schwer das jetzt abzuschätzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Beitragvon The Hit-Man » Freitag 2. Mai 2008, 10:29

die GUI editoren sehen beide ganz gut aus. naja, um nen nettes programm zu schreiben, brauchste heute echt nen fester drum rum. klar, code ich meist auch erst für die konsole, aber dann würde ich ganz gerne nen fenster drum haben. sollte ja so gelaufen sein, das dieser WebMessenger auch unter windows so ohne weiteres läuft. die leute wollen eben heute alle klicki bunti haben. schreibe ja selber noch kleine sachen in c# unter sharp develop ( das ne ganz nette IDE ist ). kann ja schlecht dem kunden sagen, ne GUis braucht ihr eigentlich nicht für das tool. die meisten kennen ja nur windows, die zum beispiel im büro sitzen und damit arbeiten müssen.
da linux ja echt auf den vormarsch ist, fehlt echt ne gute IDE, mit GUI designer, wo man schnell ergebnisse hat. ich denke auch, daß das manchen leuten schneller einen einstieg unter linux erleichtert, als wenn sie alles in der konsole einstellen müssen und auch das programmieren würde mehr spaß machen. gambas zum beispiel ist eine echt gelungende basic IDE ( die ich aber nicht nutze ). lehnt sich ja an VB an. damit kannste schnell mal ne kleinigkeit, mit nem fenster "zusammenklicken".
so was würde ich mir unter python wünschen. der boa-constructor hat eigentlich nen guten anfang gemacht. eigentlich alles dabei, was ich suche/brauche, aber zum mindest unter meinem OS ( ubuntu und slackware ), echt noch zu buggy :( der fensterdesigner hat auch noch so seine macken und schmiert manchmal einfach ab.
manchmal verstehe ich da NOVELL nicht. ist doch ne größere firma, und auch M$ ist ja irgendwie da mit drin. das die sich nicht mal hinsetzen und ne gute IDE programmieren. wie gesagt, auch wenn es was kostet, würde ich dafür etwas bezahlen. für gute software, würde ich auch geld ausgeben.
BlackJack

Beitragvon BlackJack » Freitag 2. Mai 2008, 10:54

Ich denke VB-Clone sind der falsche Weg. Es verführt einfach dazu wirklich schnell etwas zusammen zu klicken und die ganze Logik in die GUI zu packen. Das skaliert aber besch…eiden.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 2. Mai 2008, 11:10

The Hit-Man hat geschrieben:wie gesagt, auch wenn es was kostet, würde ich dafür etwas bezahlen. für gute software, würde ich auch geld ausgeben.

Wenn die IDE keine Freie Software ist, dann würde ich das Ding unter Linux nicht anfassen wollen. Nicht darum bin ich umgestiegen um mir wieder unfreie Software einzuhandeln. Da verzichte ich auf VB-unter-Linux-Programme, die ja schon unter Windows schlimm genug waren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Freitag 2. Mai 2008, 16:22

zumindest solange man mit xrc arbeitet...


das ist der entscheidende punkt.

ich progge gern mit pyqt für windows und deren qt-designer.
ist der beste für mich zb , weil er eine einheitliche oberfläche mit einfachen programmierstil erstellt.

ist überschaubar und hat den typischen python-stil mit dem umwandler ui-datei in eine py-datei.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 2. Mai 2008, 17:03

sechsrad hat geschrieben:hat den typischen python-stil mit dem umwandler ui-datei in eine py-datei.

Also wo das typischer Stil ist... sowohl wxPython als auch PyGTK lesen Interface-Dateien ein, was meiner Meinung nach sauberer als Codegeneration ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » Freitag 2. Mai 2008, 17:48

sechsrad hat geschrieben:ich progge gern mit pyqt für windows und deren qt-designer.

Ich mag den qt-designer aus einem Grund nicht: Versuch mal nen ui File zu verändern; Ja genau layout von oben bis unten breaken -_-
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Freitag 2. Mai 2008, 19:09

wie kann man den code als xrc-code abspeichern. finde kein speicherbutton dafür.

mfg
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Beitragvon The Hit-Man » Freitag 2. Mai 2008, 21:03

Wenn die IDE keine Freie Software ist, dann würde ich das Ding unter Linux nicht anfassen wollen. Nicht darum bin ich umgestiegen um mir wieder unfreie Software einzuhandeln. Da verzichte ich auf VB-unter-Linux-Programme, die ja schon unter Windows schlimm genug waren.

naja, wenn die software natürlich frei ist, wäre es natürlich noch besser. wenn die IDE unter GPL steht, vierdient man die kohle ja eh meist nur mit dem support, trotzdem fehlt eine solche IDE, wie sie zum beispiel unter windows gibt und finde ich leider traurig. ich nmeine, ich mache ja niemanden nen vorwurf, das sie nicht programmiert wird, weil ja eben alles freiwillig ist. ich würde es ja selber machen, wenn ich die ahnung davon hätte.

Ich denke VB-Clone sind der falsche Weg. Es verführt einfach dazu wirklich schnell etwas zusammen zu klicken und die ganze Logik in die GUI zu packen. Das skaliert aber besch…eiden.


muß ja nicht VB sein, trotzdem würde ich gerne schneller ergebnisse haben. zum beispiel: habe ne menge distris getestet, unter anderem auch die, die recht schwierig sind, sprich slackware, wo ja das meiste in den textdateien eingestellt werden. das ist so weiter auch gar nicht schlecht, denn mal eben nen server per ssh einstellen hat super vorteile, kein X, kaum traffic und so weiter. allerdings hatte ich keine lust mehr, mich um solche sachen zu kümmern und hätte gerne irgendwelche frontends. aus diesem grund, jetzt, xubuntu ( mit reinem debian gibts ja auch noch viel mit der konsole einzustellen ).
des weiteren hatte ich vorerst auch slackware bei meiner freundin installiert, aber seinen wir mal ehrlich, wie soll sie sich das linux, für ihren geschmack einstellen, wenn sie in der konsole fummeln muß? möchte ich ihr auch nicht unbedingt zumuten, obwohl ich sagen muß, das sie es sogar drauf hat, unter der konsole, mp3 cds zu brennen.
viele leute schreckt eine solche konsole nun mal ab ( kann es ja nicht ändern ). manchmal möchte ich mir gar keine gedanken darüber machen, wie etwas funktioniert. wie ein GUI designer arbeitet, und mir den passenden code generiert, oder wie eine IDE vernünftig läuft. ich will ein problem lösen und zwar so schnell wie möglich. ich kann doch einem kunden nicht sagen, unter linux, ihre anwendung zu entwickeln, dauert ca.5 wochen und unter windows 2 wochen. was glaubt ihr, was er mir sagen wird? ganz klar, er nimmt windows und will dafür sein programm geschrieben haben.

auch wenn es jetzt den rahmen sprengt, ich nutze im moment den ndiswrapper. da sagen doch viele leute, sie mögen ihn nicht, weil er ja keinen nativen code verwendet. ich frage mich, was soll das? ich bin doch erst mal froh, wenn meine hardware funktioniert (ohne zu fuckeln, sprich wie eine gute IDE ) und wenn ich dann lust habe, oder zeit, kann ich mir einen nativen treiber kompilieren/installieren ( sprich eine IDE, die nicht so dolle ist, wie nen externer GUI builder und so weiter )

aber die frage ist eigentlich, welche tools für python unter GTK, setzt man am besten ein? welcher GUI builder eigent sich am besten dazu, oder am besten welche IDE?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 2. Mai 2008, 22:17

sechsrad hat geschrieben:wie kann man den code als xrc-code abspeichern. finde kein speicherbutton dafür.

Hängt von dem Programm ab welches du nutzt, das da wäre...

The Hit-Man hat geschrieben:naja, wenn die software natürlich frei ist, wäre es natürlich noch besser. wenn die IDE unter GPL steht, vierdient man die kohle ja eh meist nur mit dem support, trotzdem fehlt eine solche IDE, wie sie zum beispiel unter windows gibt und finde ich leider traurig. ich nmeine, ich mache ja niemanden nen vorwurf, das sie nicht programmiert wird, weil ja eben alles freiwillig ist. ich würde es ja selber machen, wenn ich die ahnung davon hätte.

Es gibt eben zu wenig bedarf für so etwas. Visual Basic <= 6 ist auf Windows inzwischen ziemlich tot, das neuere Visual Basic ist nicht mehr so IDE-zentrisch. Das es so etwas auf freien Platformen nicht gibt liegt ja nicht zuletzt daran, dass es keinen Bedarf dafür gibt. So etwas ähnliches hat mal das Projekt PythonCard auf die Beine gestellt, du kannst es dir mal ansehen.

The Hit-Man hat geschrieben:muß ja nicht VB sein, trotzdem würde ich gerne schneller ergebnisse haben.

Das hängt ab was man machen will, für einige Dinge bekommst du unter Linux schnellere ergebnisse als unter Windows, weil du dich nicht mit der abstrusen Win32-API rumschlagen musst.

The Hit-Man hat geschrieben:zum beispiel: habe ne menge distris getestet, unter anderem auch die, die recht schwierig sind, sprich slackware, wo ja das meiste in den textdateien eingestellt werden.

In fast allen Distributionen wird das meiste in Textdateien eingestellt. In Slackware ist nur eben weniger dieser Konfiguration automatisiert. Selbst das unsägliche GConf nutzt irgendwo seine XML-Dateien und die sind beim besten Willen nicht dazu gedacht, vom User per Hand geändert zu werden.

The Hit-Man hat geschrieben:manchmal möchte ich mir gar keine gedanken darüber machen, wie etwas funktioniert. wie ein GUI designer arbeitet, und mir den passenden code generiert, oder wie eine IDE vernünftig läuft. ich will ein problem lösen und zwar so schnell wie möglich. ich kann doch einem kunden nicht sagen, unter linux, ihre anwendung zu entwickeln, dauert ca.5 wochen und unter windows 2 wochen. was glaubt ihr, was er mir sagen wird? ganz klar, er nimmt windows und will dafür sein programm geschrieben haben.

Wenn du mit einem GUI-Designer 3 Wochen mehr brauchst als unter Windows mit einem ähnlichen GUI-Designer dann machst du irgendetwas falsch. Für richtige Programme geht die meiste Zeit in der Programm und nicht der Anzeigelogik drauf, und die musst du schreiben, egal ob unter Windows oder Linux.

The Hit-Man hat geschrieben:auch wenn es jetzt den rahmen sprengt, ich nutze im moment den ndiswrapper. da sagen doch viele leute, sie mögen ihn nicht, weil er ja keinen nativen code verwendet. ich frage mich, was soll das?

Ja, frage ich mich auch. Warum kann Atheros es nicht hinbekommen, einen Entwickler einzustellen, der freie Treiber macht. Warum muss ich mich unter Linux von Windows-Treibern abhängig machen? Mit freien Treibern funktioniert das meiste out-of-the-box. Etwa die ATI-Treiber: bei den freien Treibern funktionierte Compositing schon lange, bei den propietären gibt funktioniert XVideo erst seit kurzer Zeit brauchbar. Intel macht es vor, dass man sowohl WLAN als auch Grafiktreiber brauchbar hinbekommen kann.

The Hit-Man hat geschrieben:aber die frage ist eigentlich, welche tools für python unter GTK, setzt man am besten ein? welcher GUI builder eigent sich am besten dazu, oder am besten welche IDE?

Das ist eben zu sehr der Windows-Gedanke. Unter Windows gibt es die eierlegende Wollmilchsau und unter Unices viele Tools die ihre Aufgabe gut erfüllen. Für GTK-Programmierung wäre das ein Editor (du darfst es dir aussuchen welcher) und Glade/Gazpacho. Dort kannst du schon die Signale und Callbacks definieren und muss im Python-Code nur ein Autoconnect machen. Das gibt sich einer IDE nicht mehr viel, den den Callback-Code schreiben musst du so oder so. Der Unterschied ist nur, dass beim Doppelklick in Glade nicht ein Editorfenster mit ``def btn1_click(widget, data):\n `` geöffnet wird, wo man nur noch den Code reinschreiben muss.

Andererseits kanne ich auch wenige brauchbare VB-Programme unter Windows. Die meisten VB-Programme denen ich begegnet bin (und ich auch selbst gemacht habe), sind kleine Spielereien die meist eher schlecht als recht funktionieren. Meiner Erfahrung nach waren Delphi-Programme in der Regel brauchbarer aber auch Delphi scheint auf dem absteigenden Zweig zu sein (auch im Hinblick auf Borland/Codegear).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Samstag 3. Mai 2008, 12:01

wenn ich mit dem wxformbuilder dieses erstelle (xrc-datei):

Code: Alles auswählen

#design layout in a separate XML file
<?xml version="1.0" encoding="utf-8"?>
<resource>
  <object class="wxFrame" name="mainFrame">
    <title>My Frame</title>
    <object class="wxPanel" name="panel">
      <object class="wxFlexGridSizer">
        <cols>2</cols>
        <rows>3</rows>
        <vgap>5</vgap>
        <hgap>5</hgap>
        <object class="sizeritem">
          <object class="wxStaticText" name="label1">
            <label>First name:</label>
          </object>
        </object>
        <object class="sizeritem">
          <object class="wxTextCtrl" name="text1"/>
        </object>
        <object class="sizeritem">
          <object class="wxStaticText" name="label2">
            <label>Last name:</label>
          </object>
        </object>
        <object class="sizeritem">
          <object class="wxTextCtrl" name="text2"/>
        </object>
        <object class="spacer">
          <size>0,0</size>
        </object>
        <object class="sizeritem">
          <object class="wxButton" name="button">
            <label>Submit</label>
          </object>
        </object>
      </object>
    </object>
  </object>
</resource>


wie finde ich dann in wxpython dazu diese verbindung, muss man denn das vorherige guiprogramm (xrc) zerpflücken um die einzelnen
button anzusprechen bzw zu programmieren?

Code: Alles auswählen

#logic by itself in module
import wx
from wx import xrc
class MyApp(wx.App):
    def OnInit(self):
        self.res = xrc.XmlResource('gui.xrc')
        self.init_frame()
        return True
    def init_frame(self):
        self.frame = self.res.LoadFrame(None, 'mainFrame')
        self.panel = xrc.XRCCTRL(self.frame, 'panel')
        self.text1 = xrc.XRCCTRL(self.panel, 'text1')
        self.text2 = xrc.XRCCTRL(self.panel, 'text2')
        self.frame.Bind(wx.EVT_BUTTON, self.OnSubmit, id=xrc.XRCID('button'))
        self.frame.Show()
    def OnSubmit(self, evt):
        wx.MessageBox('Your name is %s %s!' %
            (self.text1.GetValue(), self.text2.GetValue()), 'Feedback')
if __name__ == '__main__':
    app = MyApp(False)
    app.MainLoop()
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Beitragvon The Hit-Man » Samstag 3. Mai 2008, 13:25

Wenn du mit einem GUI-Designer 3 Wochen mehr brauchst als unter Windows mit einem ähnlichen GUI-Designer dann machst du irgendetwas falsch.


wenn du IDEs von windows gewöhnt bist, ist es unter linux wirklich etwas schwierig nen fenster zu designen. die normalen windows form haben ja nicht diese tabellen sizer. allerdings habe ich mich damals schon unter windows gefragt, wie ich die fenster so programmieren kann, das sie beim vergrößern, auch die entsprechenden objekte, mit größer ziehen. erst als ich damals netbeans kennen lernte, wußte ich was layout manager sind und kam damit mal gar nicht klar. so geht es ja auch ungefähr mit GTK oder wxwidgets, denn die benutzen ja die sizer. ist wirklich ne ziemliche umstellung. wenn du zumindest, unter glade dein ergebnis testen könntest, also so ne vorschau von deinem fenster. dann kannste zu mindest ssehen, wie dein fenster mal aussehen wird. diese option vermisse ich echt.

Ja, frage ich mich auch. Warum kann Atheros es nicht hinbekommen, einen Entwickler einzustellen, der freie Treiber macht. Warum muss ich mich unter Linux von Windows-Treibern abhängig machen?


obwohl linux ja irgendwie im kommen ist ( kenne einige, die totale windows freak sind, aber linux zu mindest mal getestet haben ), sieht es so aus, als wenn es immer noch nicht genug gepusht wird. allerdings von nvidia, und ati gibts native treiber, auch für den RT chipsatz, für wlan karten, gibt es von der firma treiber, aber auch nen opensource projekt. natürlich finde ich native treiber angenehmer, aber was willste machen, wenn es diese nunmal nicht gibt??? ich finde nicht, das ich mich abhängig mache, wenn ich den ndiswrapper nutze, denn es bleibt ja mir überlassen, ob ich ihn benutze und bin froh darüber, das meine hardware läuft, egal wie. war ne spekulation im netz, das es auch möglich sein, andere hardware treiber von windows mit dem ndiswrapper nutzen zu können ( was auch keine schlechte idee wäre ), doch dann sehe ich auch das problem, das kaum noch jemand bock hat, einen nativen treiber für linux zu schreiben.

klar gibt es unter linux schon fertige programme, die manche sachen besser erledigen, wie windows ( was ich sehr zu schätzen weiß ). mal eben nen kleines script programmiert, wie zum beispiel ne datensicherung, und als cron job eintragen. ist unter windows mal nicht so einfach. dafür brauchste erst wieder nen programm.

trotzdem wäre ich dafür, ne IDE zu haben, in der auch gleich der GUI builder mit bei wäre. habe ja auch unter windows programme geschrieben, mit größeren fenstern. da war es echt angenehm, mal eben zusammen zu klicken, wenn es schnell gehen muß. dafür muß ich allerdings dabei sagen, das ich nicht wirklich ahnung von dem hatte, wie zum beispiel so ein fenster code mäßig erstellt wird. das war mir eigentlich auch egal, denn das programm mußte fertig sein.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 3. Mai 2008, 14:05

The Hit-Man hat geschrieben:wenn du IDEs von windows gewöhnt bist, ist es unter linux wirklich etwas schwierig nen fenster zu designen. die normalen windows form haben ja nicht diese tabellen sizer. allerdings habe ich mich damals schon unter windows gefragt, wie ich die fenster so programmieren kann, das sie beim vergrößern, auch die entsprechenden objekte, mit größer ziehen. erst als ich damals netbeans kennen lernte, wußte ich was layout manager sind und kam damit mal gar nicht klar. so geht es ja auch ungefähr mit GTK oder wxwidgets, denn die benutzen ja die sizer. ist wirklich ne ziemliche umstellung. wenn du zumindest, unter glade dein ergebnis testen könntest, also so ne vorschau von deinem fenster. dann kannste zu mindest ssehen, wie dein fenster mal aussehen wird. diese option vermisse ich echt.

Glade und XRCed sind doch so WYSIWYG, wo brauchts da noch eine Vorschau? Und die Sizer sind ein nicht allzu kompliziertes Konzept, die gibt es auch unter Windows in quasi jedem GUI-Toolkit. Mit Glade kann man solche auch anlegen und editieren. u musst in Glade die Callbacks definieren und kannst dann im Quellcode ein ``autoconnect`` machen und das hat sich. SPE hat versucht einen GUI-Builder mit Editor zu verbinden, kannst es dir ja mal ansehen.

The Hit-Man hat geschrieben:obwohl linux ja irgendwie im kommen ist ( kenne einige, die totale windows freak sind, aber linux zu mindest mal getestet haben ), sieht es so aus, als wenn es immer noch nicht genug gepusht wird. allerdings von nvidia, und ati gibts native treiber, auch für den RT chipsatz, für wlan karten, gibt es von der firma treiber, aber auch nen opensource projekt. natürlich finde ich native treiber angenehmer, aber was willste machen, wenn es diese nunmal nicht gibt???

Mich beim Hersteller beschweren. Die ATI-Treiber waren bis vor kurzem sehr grottig und propietät, jetzt haben sie zumindest die Specs rausgegeben, so dass wenigstens jemand der Ahnung hat, da was besseres machen kann. Nvidia ist immer noch in nonfree-Land aber die werden sich auch früher oder später bewegen müssen, sonst bricht ihnen der komplette Linux-Share weg.
In meinem Laptop funktioniert der WLAN-Treiber nicht (vielleicht wirds mit ath5k besser), da mache ich folgendes: Kabel nehmen, anstecken. Der Treiber für meine LAN-Karte ist nämlich seit langer Zeit im Linux-Kernel dabei.

@sechsrad: Ich nutze kein wx, da müsstest du Gerold fragen, wie genau das funktioniert. Am besten in einem eigenen Thread.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder