Visual Python ???

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
andy_H
User
Beiträge: 12
Registriert: Samstag 23. Januar 2021, 15:06

Hallo Leute,

demnächst bekomme ich nen Pi 400 und habe mir deshalb ein paar Python Videotutorials reingezogen.
Alles soweit einiger maßen verständlich. Ein bisschen schon vorher mit Arduino und C++ rumgemacht.
Was ich aber nicht gefunden habe ist analog zu Visual Basic oder Visual C ein Visual Python.

Dass ich mit zb. tkinter eine GUI bauen kann ist klar, aber eine grafische Oberfläche zum Programmieren
mit Python wäre eben schnucklig.
Visual Studio oder VSCode ist nicht was ich suche.

Also konkret: ich glaube es war Visual C - man definiert eine 'Form' (= Fenster), plaziert darin Buttons, Labels, Listboxen etc.
in der entsprechenden Farbe, Größe, Schriftart und der Code dazu wird automatisch generiert.

Gibt es das? Darf auch etwas kosten.

Gruß
andy_H
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

So etwas gibt es nicht.

Was dem am naechsten kommt ist der Qt Designer, mit dem du deine Oberflaeche gestalten kannst. Und dann vielleicht die Eric-IDE, die selbst in PyQt geschrieben wurde, und da denke ich eine recht gute Integration hat. Ich habe das vor Jahren mal ausprobiert, aber mir ist das viel zu ueberladen.

Alternativ kannst du mal Lazarus probieren. Andere Sprache, aber die ist in diesem Visual-Paradigma aus den 90igern verhaftet.
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

andy_H hat geschrieben: Samstag 23. Januar 2021, 15:26 Dass ich mit zb. tkinter eine GUI bauen kann ist klar, aber eine grafische Oberfläche zum Programmieren
mit Python wäre eben schnucklig.
Mittlerweile sind zwar gefühlt 80% aller Anfängerfragen hier im Forum zur GUI-Programmierung, m.M.n. ist das aber eigentlich eher etwas, mit dem man sinnvollerweise eher anfangen sollte, wenn man Python schon ganz gut beherrscht (insb. OOP). Wenn du eine IDE zum Programmieren mit Python verwenden möchtest, ist PyCharm das Mittel der Wahl; einen GUI-Designer hat das natürlich auch nicht drin. Viele programmieren aber einfach mit ihrem bervorzugten Texteditor (vim, emacs, sublime, …). Wenn man eine neue Sprache beginnt, lohnt es sich meiner Meinung nach, sich darauf einzulassen, wie Dinge dort üblicherweise gemacht werden; ein VisualBasic-artiger Workflow gehört nicht dazu.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@nezzcarth: PyCharm läuft sicher auch auf einem Raspi, aber mir war das Ding auf einem normalen Desktop-PC schon zu schwerfällig, insbesondere das initiale indizieren aller Bibliotheken. Und das nervte mich bei einer SSD. Wie das auf einer SD-Karte ”läuft” mag ich mir gar nicht vorstellen. 🙂
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

@__blackjack__: Ich war auch nicht davon ausgegangen, dass man mit PyCharm direkt auf dem RaspberryPi entwickelt. Die Vorstellung, den Raspberry wie einen "normalen" PC mit einem WM zu verwenden ist mir komplett fremd. Aber gut, du hast natürlich recht. Das wird wohl gar nicht so selten gemacht und dann ist PyCharm nicht die richtige Wahl.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@nezzcarth: Wir reden hier von einem Raspi 400, also den der direkt in einer Tastatur verbaut ist, damit man den wie einen normalen Rechner verwenden kann. Bei dem Gerät fände ich es komisch noch einen Rechner daneben zu stellen um ihn zu programmieren. 🙂
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

@__blackjack__: Oh, den kannte ich nicht. Sorry. Ich nehme alles zurück :)
andy_H
User
Beiträge: 12
Registriert: Samstag 23. Januar 2021, 15:06

Danke an alle,
Tja, da werd ich wohl oder übel bei einem Texteditor bleiben müssen. PyCharm habe ich schonmal ausprobiert (PC).
Noch ne blöde Frage: ist Raspberry PI OS das Betriebssystem der Wahl (für Pi 400), oder gibt es da noch andere insbesondere
wenn ich überwiegend die GPIO Pins ansprechen möchte (Python mit GPIOzero oder Java muss dann natürlich noch dazu) ?

cheers big ears
andy_H
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nö, das ist schon die erste Wahl.
Benutzeravatar
Dennis89
User
Beiträge: 1555
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,
andy_H hat geschrieben: Sonntag 24. Januar 2021, 06:08 Tja, da werd ich wohl oder übel bei einem Texteditor bleiben müssen.
"Thonny" ist auf dem Raspberry-OS schon vorinstalliert. Der hat dann doch ein paar mehr Vorteile wie ein reiner Texteditor, finde ich als Anfänger zumindest.
Zwar ist das nicht die Lösung für deine ursprüngliche Frage, aber zum Python-Programme auf dem Pi zu schreiben finde ich "Thonny" ganz nützlich.

Edit: Ja 'gpiozero' ist eine gute Wahl um mit Python die GPIO-Leiste anzusprechen

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
andy_H
User
Beiträge: 12
Registriert: Samstag 23. Januar 2021, 15:06

moin,

ich bin jetzt nicht ganz sicher, aber ich denke mit PyQt5 hätte ich was ich brauche (grafische Programmieroberfläche)
ABER wie kriege ich das zum Laufen?
Da ich 2 Varianten von Python3 habe, a) auf dem Pi400 mit Linux und b) Python3 auf win10 64 bit , stellt sich die Frage wo es einfacher geht.
Kann das 'mal jemaand einem ganz Doofen wie mir erklären bitte.
In der Kommandozeile (DOS-Box) von win10 habe ich mit pip install pyqt5 zwar schon etwas erreicht, es wurde etwas installiert und etwas nachgeladen.
Tja und dann? Wie gehts jetzt weiter - ich hab NULL Ahnung.

greetz
andy_H
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@andy_H: Nun gehst du auf die Suche nach Einführungen und Dokumentation rund im PyQT oder PySide2. Beides ist jeweils eine Python-Schnittstelle zu Qt. Und mit der Qt-Dokumentation musst du dich auch beschäftigen, da das die Beschreibungen sind - auch wenn sie nicht für Python sind -, die das Vorgehen beschreiben.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@andy_H: Links zu den entsprechenden Dokumentationen griffbereit haben, also die von PyQt5 und die von Qt selbst. Dann im Netz nach einem PyQt-Grundlagentutorial ausschau halten, da gibt es mehrere. Da dann mal von Hand ein bisschen Qt, Widgets, und Layouts kennenlernen. Dann den Qt-Designer installieren und lernen wie man GUIs zusammenklickt. Wichtig: Layouts! Nicht einfach Widgets irgendwo hin ziehen und manuell Position und Grösse festlegen. Die *.ui-Dateien dynamisch ins Programm einbinden. Keinen Code generieren!
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
DeaD_EyE
User
Beiträge: 1240
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

andy_H hat geschrieben: Samstag 23. Januar 2021, 15:26 Gibt es das? Darf auch etwas kosten.
Meinst du z.B. so etwas: https://kivy.org

Es ist eine Mini-Sprache implementiert, womit man das Design der GUI erstellen kann.
Bei QT5 gibt es auch so etwas. Da kann man mit dem QTDesigner das Design der GUI vornehmen, dies in eine spezielles Format exportieren und kann dann von Python aus die Definition laden.

Heißt: Code ist vom Design getrennt.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
andy_H
User
Beiträge: 12
Registriert: Samstag 23. Januar 2021, 15:06

heureka !

kaum macht mans richtig schon funktionierts :-)

1) als editor nehme ich Spyder (PyCharm war mir zu überladen) - auf Win10
2) mit QtDesigner GUI erstellt und als .ui abgespeichert
3a) mit pyuic5 -x file.ui -o file.py konvertiert und in spyder geöffnet
3b) in spyder mit import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.uic import *
auf die .ui Datei zugegriffen
Die Funktionalitäten ("was passieret bei welchem Ereignis") müssen natürlich noch nachprogrammiert werden
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@andy_H: Die Python-Quelltextdatei solltest Du nicht generieren, die brauchst Du nicht. Und Sternchen-Importe sind Böse™. Das macht Programme unnötig unübersichtlicher und fehleranfälliger und es besteht die Gefahr von Namenskollisionen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
andy_H
User
Beiträge: 12
Registriert: Samstag 23. Januar 2021, 15:06

hallo leute,

da ich jetzt soweit alles am start habe wie ich es mir vorstelle geht es mit den libraries weiter.
Eigentlich meine ich deren befehls/comando aufrufe.
Gibt es eine seite wo die aufgelistet sind ?

Beispiel: wenn ich pygame importiert habe oder pyqt5 oder tkinter weiß ich ja nicht welche comandos ich aufrufen kann/muss
um eine bestimmte aufgabe zu lösen.
Sprich ich suche deren befehlsliste - die muss doch irgendwo stehen oder muss irgend wie abgerufen werden können.

thanx
andy_H
Benutzeravatar
Dennis89
User
Beiträge: 1555
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

suche einfach im Internet nach der Dokumentation für die gewünschte Bibliothek.
Beispiel tkinter:
https://docs.python.org/3/library/tkinter.html

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die steht in der offiziellen Dokumentation. ZB pygame: https://www.pygame.org/docs/

PyQt5 ist ein bisschen diffizieler: da das "nur" Qt5 wrappt, musst du die C++-Dokumentation lesen. Denn es waere viel zu aufwaendig, alles fuer PyQt5 angepasst zu generieren. Die Uebersetzung zu Python gelingt aber recht gut. In der PyQt5 Dokumentation selbst steht dazu einiges.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@andy_H: Pygame und PyQt5/Qt haben Dokumentation und `tkinter` gehört zur Standardbibliothek, ist also in der Python-Dokumentation beschrieben. Wobei `tkinter` dort nicht vollständig dokumentiert ist, es gibt dort aber eine Sammlung mit Links zu tiefergehender Dokumentation.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten