Я пытался сделать свои уроки полностью самодостаточными, но у меня есть некоторые проблемы, которые, вероятно, возникают из-за того, что я пропустил что-то, что все остальные знали в первую очередь ...
В любом случае, возьмите этот пример:
class Main_Window (QtGui.QMainWindow):
def __init__ (self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_bookingSystemMain()
self.ui.setupUi(self)
# Connect slots
QtCore.QObject.connect(self.ui.submitRecord, QtCore.SIGNAL("clicked()"), self.__clickSubmitRecord)
QtCore.QObject.connect(self.ui.btnListBookings, QtCore.SIGNAL("clicked()"), self.__show_list)
def __clickSubmitRecord (self):
global bookings
name = self.ui.edtName.text()
event = str(self.ui.comEvent.currentText())
amount = self.ui.spinBox.value()
if name == '':
QtGui.QMessageBox.warning(self, "Error", "Please enter a name!")
elif amount == 0:
QtGui.QMessageBox.warning(self, "Error", "You can't reserve 0 tickets!")
elif event == '':
QtGui.QMessageBox.warning(self, "Error", "Please choose an event!")
else:
bookings.append(Booking(name, event, amount))
QtGui.QMessageBox.information(self, "Booking added", "Your booking for " + str(amount) + " ticket(s) to see " + event + " in the name of " + name + " was sucessful.")
self.__clear_widgets()
def __clear_widgets (self):
self.ui.edtName.clear()
self.ui.comEvent.setCurrentIndex(-1)
self.ui.spinBox.setValue(0)
def __show_list (self):
listdialog = List_Window(self)
listdialog.show()
Который реализует интерфейс, описанный в другом модуле. Метод clickSubmitRecord () использует глобальный список «резервирования» и добавляет к нему - теперь, конечно, этот класс не должен иметь ничего общего с чем-то кроме этого пользовательского интерфейса?
Как бы я это реализовал? Как я уже сказал, мне, вероятно, не хватает какой-то техники или очевидной конструктивной особенности ...
Спасибо!