Python Einsteigerfrage

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.
Antworten
Neuling2015
User
Beiträge: 3
Registriert: Donnerstag 19. November 2015, 18:02

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_())
Zuletzt geändert von Anonymous am Donnerstag 19. November 2015, 20:54, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

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"
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Neuling2015
User
Beiträge: 3
Registriert: Donnerstag 19. November 2015, 18:02

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 :(
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

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.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Neuling2015
User
Beiträge: 3
Registriert: Donnerstag 19. November 2015, 18:02

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
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.
Antworten