class StartQT4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
Почему QtGui.QWidget.__init___
???
Используйте insted:
class StartQT4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
Вы должны позвонить __init__
метон из базового класса (имя в скобках '()')
QDialog имеет две полезные процедуры:
exec_()
show()
Сначала дождитесь закрытия диалогового окна, а затем вы сможете получить доступ к любому диалоговому окну формы поля. Второе диалоговое окно показа, но не ждите, поэтому для правильной работы необходимо настроить некоторые соединения слотов / сигналов, чтобы отвечать за действия диалога.
например. для exec _ ():
class Dialog(QDialog):
def __init__(self, parent):
QDialog.__init__(parent)
line_edit = QLineEdit()
...
dialog = Dialog()
if dialog.exec_(): # here dialog will be shown and main script will wait for its closing (with no errors)
data = dialog.line_edit.text()
Небольшой совет: можете ли вы изменить классы пользовательского интерфейса на виджеты (с макетами). И, возможно, проблема в том, что ваш __init__
должен быть __init__(self, parent=None, dbConnection)
Потому что, когда вы создаете новый виджет в существующем, PyQt может попытаться установить его как дочерний вид существующего. (Поэтому измените все init, чтобы иметь дополнительный родительский параметр (должен быть на второй позиции)).