[PyKDE] [solved] Poss OT calling widget ?
Dave S
jk at pusspaws.net
Mon Sep 11 21:04:32 BST 2006
On Monday 11 September 2006 08:42, Andreas Pakulat wrote:
> On 10.09.06 21:41:28, Dave S wrote:
> > I SOLVED it !!!!!!!! :)
> >
> > OK it took me 8 straight hours of hitting head on keyboard but ...
> >
> > def main(args):
> >
> > app = QApplication(args)
> > docview = View()
> > docview.parent = docview
> > app.setMainWidget(docview)
> > docview.show()
> > QObject.connect(app, SIGNAL('lastWindowClosed()'),app,
> > SLOT('quit()')) app.exec_loop()
> >
> > if __name__=="__main__":
> > main(sys.argv)
> >
> >
> > so I have self.parent ....
> >
> > view = dialogs.form1.Form1(self.parent, '', QWidget.WType_Dialog)
> > view.show()
> >
> > And it works :)
>
> I don't get it.
This is just the way I managed to get things to work - makes a kind of sense
but I am open to suggestions
>
> Anyway such things are normally done with a dialog. For example if the
> first dialog (form1) should popup when a button in your mainwindow is
> pressed, you connect a slot to the clicked() signal of that button.
> Inside that slot you do
>
> f1 = form1(self)
> if f1.exec() == QDialog.Accepted:
> f2 = form2(self)
> if f2.exec() == QDialog.Accepted:
> use the values put into either form
Ah I see this is very usefull. It also answers a question I was about to post
on :)
>
> exec() runs the forms as modal ones, so you can't access the mainwindow
> after the form is shown. When the user clicks the "Ok" button (or
> whatever you connected to the QDialog.accept slot) the dialog is closed
> and the 2nd dialog is popping up.
OK
>
> If you need modeless dialogs it get's a bit complicated, you'd create
> and show() the first dialog and then you'd connect it's accept signal to
> a slot of the mainwindow. In that slot you show() the 2nd dialog and
> have it's accept signal connected to another slot in your mainwindow.
> There you can then get all the values from the forms.
modal is good !
>
> Andreas
Thanks again,
Dave
More information about the PyQt
mailing list