Python GUI Manager 1.0

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

Wer kennt das nicht: Shell befehl vergessen und ewig nachschaun wie ich jetzt aus einer .ui-Datei eine .py-Datei mache?

Natürlich: Internet -> shell befehl suchen -> die pfade eingeben...

Ich finde / fand das recht umständlich. Da ich mich mit Java besser auskenne als mit Python(bin noch anfänger) habe ich ein Java-Projekt, dass diese Aufgabe für euch erledigt.

Das Programm funktioniert ganz einfach:

- Ihr stellt unter Bearbeiten->Einstellungen: Allgemein den Pfad zu euren Python-Dateien ein [oder dahin wo die .UI Datei liegt]
- Ihr Speichert
- Wählt links im Dateibaum die .ui-Datei aus
- Klickt auf den Button: UI=>PY und das Programm erstellt eine *.py-Datei in demselben Ordner [diese heist so wie die .ui-Datei nur die Endung ist anderster]


Geplante Verbesserungen:
- Wenn Config-Datei nicht vorhanden oder Fehlerhaft ist soll das Programm sie erneuern/anlegen
- Eine QUICK-FUNKTION: UI-DATEI auswählen und das Programm erstellt die .py
- das Programm legt Report-dateien an
- das Anlegen der Report-dateien soll an-/ausschaltbar sein
- das Programm soll eine Datei anlegen, die die GUI einbindet[eventuell in Kostenpflichtige Version?]
- Überprüfung ob die neu erstellte py-datei eine andere überschreibt
- den Namen der neuen .py-Datei selber wählen

Also bedenkt bitte: Das Programm ist noch v1.0 also, wenn Ihr Bugs findet, ich würde mich freuen, wenn Ihr diese senden könnt. Eventuell richte ich eine Ticket-Seite ein, wo Ihr mir einfacher Bugs reporten könnt.

Danke schonmal im Vorraus, ich hoffe mein Programm kann einigen von euch helfen ;)

DownloadLink: [Wird dieser Community nicht mehr zur Verfügung gestellt.]

Technische Daten:
benötigt Java 1.6.0

Bugs:
- Derzeit leider nur Windows only

EDIT:
Aufgrund der OT-förderung durch Admins und belanglosen Posts, stelle ich mein Programm hier nicht weiter zur Verfügung.

P.S.: Spart euch die Posts: braucht eh keiner.
Zuletzt geändert von Tomate_Salat am Samstag 14. Februar 2009, 14:53, insgesamt 2-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tomate_Salat hat geschrieben:Wer kennt das nicht: Shell befehl vergessen und ewig nachschaun wie ich jetzt aus einer .ui-Datei eine .py-Datei mache?
Wozu? Autogenerierter Code stinkt und wenn man die UI-Datei direkt einbindet vergisst man nicht, ggf. die UI neu zu erstellen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

Leonidas hat geschrieben:Autogenerierter Code stinkt und wenn man die UI-Datei direkt einbindet vergisst man nicht, ggf. die UI neu zu erstellen.
Entweder du meinst damit:
a) Den Shell Befehl:
Wie gesagt, der Benutzer soll später den Namen der erstellten py-Datei selber wählen können.

b) Auf das einbinden der shell-generierten-py-Datei in eine vom Programm generierte py-Datei
Klar, wenn der vom Programm generiert wurde ist das was anderes als es selber zu schreiben, allerdings kann man diesen Code notfalls umschreiben / ihn einfach akzeptieren. Muss ich ja auch wenn ich den GUI-Editor von Eclipse benutze
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tomate_Salat hat geschrieben:Klar, wenn der vom Programm generiert wurde ist das was anderes als es selber zu schreiben
Jedes GUI-Toolkit das etwas auf sich hält kann die UI-Beschreibungen (sei es GLADE in GTK+, XRC in wxWidgets oder UI in Qt) direkt einlesen. Wozu also den Code selbst schreiben oder den Code generieren lassen wenn man den Code doch einfach weglassen kann?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

ähm die UI-Datei wird (bei mir) von PyQt-Designer erstellt und die sieht im wesentl. aus wie eine xml. Wenn ich die in Python benutzen will, habe ICH gelernt, dass man daraus ne py-datei machen muss und nichts anderes macht das Programm derzeit. Und das mittels pyuic4. Das Programm erspart nur den Shell befehl. Mehr macht das Programm noch nicht! Und ich meine mich noch zu erinnern, dass man die py-Datei meist als modul benutzt und in einer anderen py-Datei importiert und das was ich als zusatztool schreiben will, soll einfach diesen import schreiben, das ist aber erst mal zukunftsvision, das kommt ganz zum schluss und ich denke wir diskutieren hier gerade über etwas was noch garnicht vorhanden ist...nicht mal annähernd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tomate_Salat hat geschrieben:ähm die UI-Datei wird (bei mir) von PyQt-Designer erstellt und die sieht im wesentl. aus wie eine xml. Wenn ich die in Python benutzen will, habe ICH gelernt, dass man daraus ne py-datei machen muss
Eben das muss man nicht und das sollte man in aller Regel auch nicht machen. Erstens kann man in Qt über QUiLoader machen und wie die PyQt-Dokumentation beschreibt geht das in PyQt über das uic-Modul.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Tomate_Salat: Ich habe 'nen Bug gefunden: Das Teil ist Windows-only. :-)

Und warum zeigst Du nicht den Quelltext? Ist es Dir peinlich, dass es im Grunde ein ganzer Haufen Singletons ist und das Programm so überhaupt nicht OOP ist? Und GUI und Geschäftslogik sind auch fröhlich zusammengeworfen.
lunar

Leonidas hat geschrieben:
Tomate_Salat hat geschrieben:ähm die UI-Datei wird (bei mir) von PyQt-Designer erstellt und die sieht im wesentl. aus wie eine xml. Wenn ich die in Python benutzen will, habe ICH gelernt, dass man daraus ne py-datei machen muss
Eben das muss man nicht und das sollte man in aller Regel auch nicht machen. Erstens kann man in Qt über QUiLoader machen und wie die PyQt-Dokumentation beschreibt geht das in PyQt über das uic-Modul.
QUiLoader wird bei C++/Qt-Programmen so gut wie nie benutzt. In einer statisch typisierten Sprache wie C++ ist de facto aufwendiger und unangenehmer als das Generieren der C++-Dateien, das ja vom Build-System (qmake oder cmake) übernommen wird.

Im Bezug auf Python dagegen ist uic natürlich der richtige Weg, am besten uic.loadUi.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:QUiLoader wird bei C++/Qt-Programmen so gut wie nie benutzt. In einer statisch typisierten Sprache wie C++ ist de facto aufwendiger und unangenehmer
Inwiefern? Das sieht mir recht straight-forward aus und wenn man in Windows PE-Dateien reinschaut sieht man auch, dass dort Ressource-Dateien eingebettet sind statt dass Code generiert wurde. Selbiges gilt für PyGTK, dass auch nur auf Funktionen der libglade zugreift, die eigentlich für GTK+, also für C-Programme gedacht ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Man muss die UI-Dateien als Ressourcen verwalten, man muss mit C++-Casts, man muss sicherstellen, dass die Widgets zur Laufzeit verfügbar sind, anstatt die Überprüfung zur Übersetzungszeit durchzuführen.

Im Endeffekt ist das verhältnismäßig viel Aufwand im Vergleich zum Erzeugen von Code aus den UI-Dateien, was das Buildsystem automatisch durchführt. Zudem gewinnt man ja auch nichts dadurch, denn den Buildvorgang muss man ja eh durchführen.
BlackJack

@lunar: Man würde etwas Flexibilität gewinnen, indem man verschiedene GUI-Layouts anbieten kann, oder Verbesserungen vornehmen kann, ohne das Programm neu kompilieren zu müssen.
lunar

BlackJack hat geschrieben:@lunar: Man würde etwas Flexibilität gewinnen, indem man verschiedene GUI-Layouts anbieten kann, oder Verbesserungen vornehmen kann, ohne das Programm neu kompilieren zu müssen.
Wenn man die UI-Dateien in Ressourcen einbetten, muss man trotzdem neu kompilieren. Ansonsten stellt sich die Frage, ob man diese Flexibilität wirklich benötigt ... meist entwickelt man ja vor sich hin und testet da schon die verschiedenen Layouts, bevor man das Ganze ausliefert.

Aber das musst du mir nicht erzählen, ich bin auch kein Fan von generiertem Code, ich sage nur, wie es bei den meisten C++/Qt-Programmen eben aussieht.
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

BlackJack hat geschrieben:Und warum zeigst Du nicht den Quelltext? Ist es Dir peinlich, dass es im Grunde ein ganzer Haufen Singletons ist und das Programm so überhaupt nicht OOP ist? Und GUI und Geschäftslogik sind auch fröhlich zusammengeworfen.
Ich finde es toll wie hier einfach belanglose Dinge diskutiert werden. Ok mitlerweile weis ich, dass man die UI-Dateien so benutzen kann. Manch einer mag aber vllt die py-Datei-Methode vorziehen und dafür kann man das Programm benutzen. Über generierten code kann man sich auch Streiten. Eigentl. sollte das hier eine Diskussion zur verbesserung des Programms werden, dennoch werden hier belanglose Dinge angeprangert! Z.B DINGE DIE NOCH GARNICHT EXISTIEREN. Bei C++ hab ich aufgehört zu lesen, da das noch weniger mit dem Thema zu tun hat!

@BlackJack: Wenn dus wissen willst: Ich habe einen einwöchigen Intensiven Crashkurs in Java hinter mir, dass mein Programmierstil nicht der beste ist, ist logisch. Dass du aber denkst mir wäre das was ich geschrieben habe Peinlich nur weil ich den Source-code nicht zeige ist lächerlich! Es liegt einfach daran, dass mir das nicht wichtig war UND ich deswegen diese Einstellung in Eclipse nicht gesucht habe / nicht suche!!!

@Leonidas: Von einem Administrator hätte ich diese OT's noch am allerwenigsten erwartet! Ob das umwandeln von UI's in PY's sinnvoll ist oder nicht, stand hier absolut nicht zur Diskusion! Find ich toll wie hier die OT's von Administratoren noch gefördert werden.

So da das hier offensichtlich ins lächerliche gezogen wird und ich keine Lust habe mir Posts durchzulesen die absolut NICHTS mit dem Topic zu tun habe, bin ich hier wieder weg!

Gratulation Leonidas, als Administrator hast du (zumindest mal in dem topic) auf ganzer Linie versagt!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tomate_Salat hat geschrieben:Ich finde es toll wie hier einfach belanglose Dinge diskutiert werden.
Wo belanglos? Das hat alles mit Qt's UI-Dateien zu tun gehabt?
Tomate_Salat hat geschrieben:Ok mitlerweile weis ich, dass man die UI-Dateien so benutzen kann. Manch einer mag aber vllt die py-Datei-Methode vorziehen und dafür kann man das Programm benutzen. Über generierten code kann man sich auch Streiten.
Streiten wir uns doch. Da bin ich mal gespannt was bei rauskommt.
Tomate_Salat hat geschrieben:Eigentl. sollte das hier eine Diskussion zur verbesserung des Programms werden, dennoch werden hier belanglose Dinge angeprangert!
Nicht belanglos. Ich habe nur gesagt dass das Programm keinen sonderlichen Nutzen hat, da man nichts generieren muss also auch keine Befehle vergessen hat. Was will man dann verbessern?
Tomate_Salat hat geschrieben:@Leonidas: Von einem Administrator hätte ich diese OT's noch am allerwenigsten erwartet! Ob das umwandeln von UI's in PY's sinnvoll ist oder nicht, stand hier absolut nicht zur Diskusion! Find ich toll wie hier die OT's von Administratoren noch gefördert werden.
Das sagt jemand der ein Java-Programm geschrieben hat, es in einem Python-Forum postet, keinen Quelltext anbietet und ein nicht-existierendes Problem löst. Ich bin begeistert wie Ontopic du bist.
Tomate_Salat hat geschrieben:Gratulation Leonidas, als Administrator hast du (zumindest mal in dem topic) auf ganzer Linie versagt!
Gratulation, als Diskussionspartner hast du sogar noch mehr versagt. Das Weglaufen aus einer Diskussion die vom ersten Post an Offtopic war und das beschimpfen von Leuten die mehr Ontopic sind als du (schließlich sind die Links die ich gepostet habe zu PyQt) hat schon Niveau.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

Wo belanglos? Das hat alles mit Qt's UI-Dateien zu tun gehabt?
Es hat NICHTS mit dem Programm zu tun gehabt! Du beschreibst Programmiermethoden!
Tomate_Salat hat geschrieben:Ok mitlerweile weis ich, dass man die UI-Dateien so benutzen kann. Manch einer mag aber vllt die py-Datei-Methode vorziehen und dafür kann man das Programm benutzen. Über generierten code kann man sich auch Streiten.
Streiten wir uns doch. Da bin ich mal gespannt was bei rauskommt.
Wie alt bist du?5? Wenn man nicht kapiert was Streiten in dem Kontext bedeutet, sollte man auch keinen Kommentar dazu abgeben, das wirkt lächerlich, vor allem weil ich in meinem ersten Post beschrieben habe, das ich nicht besonders erfahren mit Python bin!
Nicht belanglos. Ich habe nur gesagt dass das Programm keinen sonderlichen Nutzen hat, da man nichts generieren muss also auch keine Befehle vergessen hat. Was will man dann verbessern?
Wenn man mittel pyuic4 oder wie das heist benutzt HAT ES EINEN! Und dann kann man es auch anderster machen. Man muss daraus keine Diskusion starten! Zudem dient das Programm als Projekt meine Techniken auch in Java zu verbessern und war primär dafür gedacht mir den Einstieg in Python zu erleichtern.
Das sagt jemand der ein Java-Programm geschrieben hat, es in einem Python-Forum postet, keinen Quelltext anbietet und ein nicht-existierendes Problem löst. Ich bin begeistert wie Ontopic du bist.
1. Benutzt Ihr nur Editoren die in Python geschrieben sind?
2. Quelltext-Problem habe ich beschrieben, lern lesen!
3. Nur weil du es nicht so machst, heist es nicht das es andere nicht so machen, kapier das mal!
4. Hier zweifel ich wieder deine Berächtigung als Administrator an! Als Thema-Steller kann ich in meinem ersten Post nicht OT sein. Demnach glaube ich wieder das du 5 bist
Gratulation, als Diskussionspartner hast du sogar noch mehr versagt. Das Weglaufen aus einer Diskussion die vom ersten Post an Offtopic war und das beschimpfen von Leuten die mehr Ontopic sind als du (schließlich sind die Links die ich gepostet habe zu PyQt) hat schon Niveau.
Bestätigt wieder, wie ich über dich denke. Jeder Admin der eine Diskusion diskusion schliest, weil sie vom Thema abweicht ist ein schlechter Diskussionspartener? Ich laufe nicht weg, weil ich nie dabei war, Ihr redet über Dinge die mich in diesem Sinne überhaupt nicht interessieren!
lunar

Jo, ich geh dann mal Popkorn holen, das verspricht spannend zu werden ...
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

los leonidas, hol dir auch popkorn und unterstüzte diesen OT auch noch zusätzlich
BlackJack

@Tomate_Salat: Du regst Dich IMHO auf, dass die Rückmeldung zu Deinem Programm nicht dem entsprechen was Du Dir erwartet hast.

Du wolltest Verbesserungsvorschläge zu Deinem Programm. Zu zeigen, dass es ein Problem löst, was so gar nicht besteht, oder nicht bestehen müsste, ist IMHO völlig On-Topic.

Und auch Bemerkungen zum Aufbau des Programms und das Du keinen Quelltext zeigst um einfacher Verbesserungen vorschlagen zu können, gehören zu Deiner Fragestellung.

Vielleicht sollte ich es umformulieren: Schreib das Programm so um, dass es nicht aus vielen globalen Singletons besteht, und GUI und Geschäftslogik sauber getrennt sind.

Der Präfix `p_` bei Paketnamen ist ungewöhnlich und überflüssig.

Statt `Runtime.exec()`, sollte man den `ProcessBuilder` verwenden. Das ist in etwa der gleiche Unterschied wie bei Python `os.system()` und das `subprocess`-Modul.
Tomate_Salat
User
Beiträge: 18
Registriert: Mittwoch 19. November 2008, 00:14

@BlackJack: Ja du dürftest mein Problem so zieml. erfasst haben. Ich wollte konstruktive Kritik zu meinem Programm, auch wenn es vllt nur eine minderheit anspricht. Unter konstruktive Kritik verstehe ich durchaus auch negative, aber dass was hier in der Regel gekommen ist war einfach nur schwachsinn, dass mir nicht weitergeholfen hat. Das mit dem Präfix p_ habe ich aus den Kursheften. Ok, dann werde ich diesen in der Zukunft wohl doch weglassen.

Ok, werde das mit ProcessBuilder benutzen.
Vielleicht sollte ich es umformulieren: Schreib das Programm so um, dass es nicht aus vielen globalen Singletons besteht, und GUI und Geschäftslogik sauber getrennt sind.
Was Singletons sind weis ich zwar, aber wie ich das umsetzen kann ist mir leider nicht ganz klar. Ich dachte die GUI und Geschäftslogik gut getrennt zu haben, da meine GUI ja in einem seperaten Paket ist

Ty, traurig nur dass das bis jetzt die einzige Kritik war, mit der man auch was anfangen konnte
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Tomate_Salat hat geschrieben:
Wo belanglos? Das hat alles mit Qt's UI-Dateien zu tun gehabt?
Es hat NICHTS mit dem Programm zu tun gehabt! Du beschreibst Programmiermethoden!
Man kann ein Problem lösen indem man die Ursache des Problems löst, also in dem Fall einfach nichts zu generieren. Das ist durchaus eine gültige Lösung, ich weiß nicht warum du so sehr auf das Generieren aus bist.
Tomate_Salat hat geschrieben:Wie alt bist du?5? Wenn man nicht kapiert was Streiten in dem Kontext bedeutet, sollte man auch keinen Kommentar dazu abgeben, das wirkt lächerlich, vor allem weil ich in meinem ersten Post beschrieben habe, das ich nicht besonders erfahren mit Python bin!
Ich meinte ein Streitgespräch. Wenn du sinnvolle Argumente gibtst, warum man in Python-Programmen UI-Dateien zu Python-Code generieren lassen willst können wir gerne eine IMHO sinnvolle Diskussion haben. Bisher hast du keine geliefert. Anfangs wusstest du nicht das es geht, jetzt hast du gelernt dass es geht. Und trotzdem beharrst du darauf das dieser Thread nicht konstruktiv ist.

Das ist mir persönlich irgendwie unverständlich. Zudem versuchst du mich ständig zu attakieren, entweder über meine Position oder mein Alter. Das stellt dich in keinem guten Licht dar. Mir wäre es lieber wenn du stattdessen mal auf die technischen Argumente eingehst.
Nicht belanglos. Ich habe nur gesagt dass das Programm keinen sonderlichen Nutzen hat, da man nichts generieren muss also auch keine Befehle vergessen hat. Was will man dann verbessern?
Wenn man mittel pyuic4 oder wie das heist benutzt HAT ES EINEN! Und dann kann man es auch anderster machen. Man muss daraus keine Diskusion starten! Zudem dient das Programm als Projekt meine Techniken auch in Java zu verbessern und war primär dafür gedacht mir den Einstieg in Python zu erleichtern.[/quote]
Warum sollte man das in Python nutzen wollen? Ich bitte um Argumente. Ich ich sehe nicht was an einer solchen Diskussion falsch sein sollte, klär mich doch bitte auf.

Auch ist es ohne Quellcode schwer da irgendwas zu deinem Java-Sachen zu sagen. Ich könnts mir dekompilieren, aber das ist ja nicht der Sinn der Sache.
Tomate_Salat hat geschrieben:1. Benutzt Ihr nur Editoren die in Python geschrieben sind?
Nein, aber ich setze auch keine Techniken die in C++ sinnvoll sind in Python ein. Sondern das was eben in Python sinnvoll ist.
Tomate_Salat hat geschrieben:2. Quelltext-Problem habe ich beschrieben, lern lesen!
Also ich sehe da kein Problem dass du dich nicht selbst gemacht hättest.
Tomate_Salat hat geschrieben:4. Hier zweifel ich wieder deine Berächtigung als Administrator an! Als Thema-Steller kann ich in meinem ersten Post nicht OT sein. Demnach glaube ich wieder das du 5 bist
Es gibt das Verbesserungsvorschläge-Forum, dort kannst du ja einen Thread starten um mich durch jemanden anderen zu ersetzen. Zum Beispiel dich oder jemanden anderen der dir geeigneter erscheint.
Tomate_Salat hat geschrieben:Bestätigt wieder, wie ich über dich denke. Jeder Admin der eine Diskusion diskusion schliest, weil sie vom Thema abweicht ist ein schlechter Diskussionspartener?
Habe ich eine Diskussion geschlossen? Du hast angekündigt dich zurückzuziehen.
Tomate_Salat hat geschrieben:Ihr redet über Dinge die mich in diesem Sinne überhaupt nicht interessieren!
Und deswegen willst du anderen verbieten das zu tun? Lies doch mal lunars Signatur.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gesperrt