ich möchte mit PyQt ein Unterfenster öffnen, welches im Vordergrund bleibt und die Bedienelemente des aufrufenden Fensters blockiert. Kleines Beispiel:
parent.py:
Code: Alles auswählen
import sys
from qt import *
from child import Child
class Parent(QMainWindow):
def __init__(self,parent = None,name = None,fl = 0):
QMainWindow.__init__(self,parent,name,fl)
self.statusBar()
if not name:
self.setName("parent")
self.setCaption("parent")
self.setCentralWidget(QWidget(self,"qt_central_widget"))
self.startButton = QPushButton(self.centralWidget(),"startButton")
self.startButton.setGeometry(QRect(50,50,151,41))
self.startButton.setText("Start !")
self.resize(QSize(243,178).expandedTo(self.minimumSizeHint()))
self.connect(self.startButton,SIGNAL("released()"),self.startChildWindow)
def startChildWindow(self):
c = Child()
c.show()
c.exec_loop() # Fehlermeldung :(
if __name__ == "__main__":
app = QApplication(sys.argv)
QObject.connect(app,SIGNAL("lastWindowClosed()"),app,SLOT("quit()"))
p = Parent()
app.setMainWidget(p)
p.show()
app.exec_loop()
Code: Alles auswählen
from qt import *
class Child(QWidget):
def __init__(self,parent = None,name = None,fl = 0):
QWidget.__init__(self,parent,name,fl)
if not name:
self.setName("child")
self.setCaption("child")
self.textLabel1 = QLabel(self,"textLabel1")
self.textLabel1.setGeometry(QRect(150,30,135,61))
self.textLabel1.setText("<h2>Wirklich?</h2>")
self.CancelButton = QPushButton(self,"CancelButton")
self.CancelButton.setGeometry(QRect(20,130,151,41))
self.CancelButton.setText("Cancel")
self.textLabel1.setText("<h2>Wirklich?</h2>")
self.OkayButton = QPushButton(self,"OkayButton")
self.OkayButton.setGeometry(QRect(230,130,151,41))
self.OkayButton.setText("Okay")
self.resize(QSize(413,234).expandedTo(self.minimumSizeHint()))
self.connect(self.OkayButton,SIGNAL("released()"),self.doOkay)
self.connect(self.CancelButton,SIGNAL("released()"),self.close)
def doOkay(self):
print "Starte ..."
Grüße
max