Seite 1 von 1

Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 18:25
von Neuling2015
Hallo liebe Community,
bislang habe ich lediglich mit C# Programmiererfahrung sammeln können, nun steht im Zuge eines Schulprojektes die Programmierung mit Python an und der betreuende Lehrer ist leider bis Ende des Jahres ausgefallen :(

Für das Projekt habe ich mit Qt Designer eine Oberfläche mit 3 Radio Buttons und einem Push Button erstellt und es in ein Python Programm formatiert.
Eine Funktion "Testprogramm" habe ich bereits geschrieben und kann sie mit dem Button aufrufen.

Meine Fragen:
1) Wie kann ich einlesen, welcher Radio Button angewählt ist?
2) An welcher Stelle im Programm kommt mein Hauptprogramm hin? Schreibe ich meinen ganzen Programmcode dahin, wo ich jetzt mein Button Clicked abgefragt habe? (Kenne es von C#, dass ich ein Main habe)

Wäre über eine Antwort sehr Dankbar! :)

Code: Alles auswählen

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Radiobutton.ui'
#
# Created: Thu Nov 19 17:13:12 2015
#      by: PyQt4 UI code generator 4.9.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s
    
def Testprogramm(): #Testprogramm Button
         print "Hello World"

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(800, 600)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(0, 10, 91, 16))
        self.label.setObjectName(_fromUtf8("label"))
        self.radioButton = QtGui.QRadioButton(self.centralwidget)
        self.radioButton.setGeometry(QtCore.QRect(0, 30, 100, 19))
        self.radioButton.setObjectName(_fromUtf8("radioButton"))
        self.radioButton_2 = QtGui.QRadioButton(self.centralwidget)
        self.radioButton_2.setGeometry(QtCore.QRect(0, 50, 100, 19))
        self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
        self.radioButton_3 = QtGui.QRadioButton(self.centralwidget)
        self.radioButton_3.setGeometry(QtCore.QRect(0, 70, 100, 19))
        self.radioButton_3.setObjectName(_fromUtf8("radioButton_3"))
        self.pushButton = QtGui.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(150, 20, 83, 24))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 19))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), Testprogramm)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("MainWindow", "Anzahl Gläser", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton.setText(QtGui.QApplication.translate("MainWindow", "1", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton_2.setText(QtGui.QApplication.translate("MainWindow", "2", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton_3.setText(QtGui.QApplication.translate("MainWindow", "3", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Start", None, QtGui.QApplication.UnicodeUTF8))


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Re: Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 19:11
von darktrym
Warum wählst du ein Projekt aus wovon du gelinde gesagt null Wissen mitbringst?
Wenn du schon mit C# bekannt bist, wieso setzt du das nicht damit um?
Denn wie ein Python-Programm aufgebaut ist, gehört bekanntlich in jedes Tutorial. Ich würde sogar sagen das GUI-Sachen zum fortgeschrittenen Sachen gehören. Der Code schaut nicht danach aus, als ob du wüssest was du da tust.

Code: Alles auswählen

def Testprogramm(): #Testprogramm Button
         print "Hello World"

Re: Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 19:51
von Neuling2015
Ich habe mir ein Display fürs Raspberry geholt, wo ein passendes Raspbian Image beigelegt war und weil ich in einigen Foren gelesen habe, dass das Programmieren mit C# nur über Umwegen (Mono) auf einem Linux basierten Betriebssystem läuft habe ich mich für Python entschieden :?

Hab mir zur einarbeitung ein Buch über das Raspberry+Python geholt und wollte mich anhand dessen einarbeiten.
Leider waren sowohl im Buch, als auch in die Tutorials Python und Qt Designer seperat beschrieben, habe aber wenig passendes über die Kombination gefunden (ggf ein paar Sachen auch nicht verstanden :oops: )

Nur komme ich leider nun nicht mehr aus der Sache mit dem Projekt raus :(

Re: Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 20:21
von bwbg
Dann beiß Dich durch die Grundlagen durch. Wenn die Grundlagen sitzen, kannst Du Dich mit PyQt beschäftigen (oder jedes andere GUI-Toolkit). Das beschriebene Interface kannst Du Dir auch "zusammenschreiben", einen Designer braucht es dafür eigentlich nicht.
darktrym hat geschrieben:Der Code schaut nicht danach aus, als ob du wüssest was du da tust.
@darktrym: Das scheint der Code zu sein, welcher vom QtDesigner erzeugt wurde.

Re: Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 20:57
von Neuling2015
Genau, der Code wurde von dem Qt Designer erzeugt.
Das einzige was ich ergänzt habe ist das Testprogramm, wie ich es in einem Tutorial gefunden habe

Re: Python Einsteigerfrage

Verfasst: Donnerstag 19. November 2015, 22:17
von BlackJack
@Neuling2015: Das in dem Quelltext zu ergänzen ist ja schon der erste Fehler. Der Kommentar am Anfang warnt deutlich davor. Ich würde heutzutage gar keinen Quelltext mehr generieren sondern die *.ui-Datei vom Designer direkt ins Programm laden. Wie das (in beiden Varianten) geht, steht in der PyQt-Dokumentation beschrieben.