wenn wir einmal den unten angegebenen und aus dem Kontext gerissenen Quelltext anschauen, dann fallen mit zwei markante SAchen auf, die ich noch nicht kenne, und auch noch nicht angewendet habe. Das sind die Stellen mit dem @-Zeichen. Was bedeuten für mich als Anfänger die
@property und @running.setter ? (Den vollständigen Quelltext könnt ihr hier einsehen). Und was mich auch verwundert, ist, dass diese Funktionen, die mit dem @-Zeichen zusammenhängen, zwischen class und der def __init__(self, model, main_ctrl): (Konstruktor). Dies kenne ich eher bei einem QThread, wo die pyqtSignal()-Funktionen sind.
Also zwei Fragen. Was besagen mir diese @-Zeichen und zweite Frage (endlich wird mir dann auch QThread etwas klarer) wieso werden die Funktionen zwischen class und der def__init__-Methode - also im class-Block gesetzt?
Code: Alles auswählen
from PySide import QtGui
from gen.ui_MainView import Ui_MainView
class MainView(QtGui.QMainWindow):
# properties to read/write widget value
@property
def running(self):
return self.ui.pushButton_running.isChecked()
@running.setter
def running(self, value):
self.ui.pushButton_running.setChecked(value)
def __init__(self, model, main_ctrl):
self.model = model
self.main_ctrl = main_ctrl
super(MainView, self).__init__()
self.build_ui()
# register func with model for future model update announcements
self.model.subscribe_update_func(self.update_ui_from_model)
def build_ui(self):
self.ui = Ui_MainView()
self.ui.setupUi(self)
# connect signal to method
self.ui.pushButton_running.clicked.connect(self.on_running)
def on_running(self):
self.main_ctrl.change_running(self.running)
def update_ui_from_model(self):
self.running = self.model.running
