Sry, für die späte Antwort, aber ich musste mir erstmal ein wenig Zeit verschaffen, um aus dem großen Programm ein kleines Beispielprogramm zu basteln.
Das Beispiel sieht wohl ziemlich verwirrend und umständlich aus, aber es ist halt aus einem großen komplexen Programm entnommen und ich wollte, dass es möglichst genau wie das eigentliche Programm läuft.
Da ich mit dem QtDesigner und pyuic gearbeitet habe, sind es auch mehrere Dateien:
main.py
Code: Alles auswählen
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from main_window import Ui_MainWindow as MW
from dialog1 import MyDialog as MD
import sys
class MainWindow(QtGui.QMainWindow, MW):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.connect(self.pushButton, QtCore.SIGNAL('clicked()'), self.show_dialog)
def show_dialog(self):
self.askDialog = MD()
self.askDialog.show()
self.connect(self.askDialog , QtCore.SIGNAL('close_dialog()'), self.close_dialog)
def close_dialog(self):
self.askDialog.hide()
self.textEdit.setFocus()
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
dialog1.py
Code: Alles auswählen
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from dialog import Ui_Dialog as dlg
class MyDialog(QtGui.QDialog, dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
self.connect(self.button, QtCore.SIGNAL('clicked()'), self.button_clicked)
def button_clicked(self):
self.emit(QtCore.SIGNAL('close_dialog()'))
dialog.py
Code: Alles auswählen
from PyQt4 import QtCore, QtGui
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(640, 480)
self.gridLayout = QtGui.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
self.button = QtGui.QPushButton(Dialog)
self.button.setObjectName("button")
self.gridLayout.addWidget(self.button, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
self.button.setText(QtGui.QApplication.translate("Dialog", "PushButton", None, QtGui.QApplication.UnicodeUTF8))
main_window.py
Code: Alles auswählen
from PyQt4 import QtCore, QtGui
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 480)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(120, 370, 103, 28))
self.pushButton.setObjectName("pushButton")
self.textEdit = QtGui.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(60, 90, 441, 161))
self.textEdit.setObjectName("textEdit")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 24))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8))
In diesem Beispiel funktioniert es überhaupt nicht - was muss ich anders machen?
Liebe Grüße