I'm also on a Windows 7 Os, and Nuke 6.3v5

@Nathan, when i set self.setWindowFlags(QtCore.Qt.Window) as you
mentionned, on Windows it seems to has same effect if i don't put this
line...
the window created seems to be a separated window within Nuke, but the
OS doesn't see it as a separate window ( that's the problem for me for
the moment )

@Ivan, i've also tried your solution, by using a QMainWindow as a
container of the QDialog but it's also the same effect as using just
the QDialog window.

i also get this this result from your QApplication calls
from PySide import QtCore, QtGui
app = QtGui.QApplication
print app.instance(), app.activeWindow()
# Result:
<PySide.QtCore.QCoreApplication object at 0x000000004E48A408>
<PySide.QtGui.QWidget object at 0x00000000714C8A48>

and i also get response from Nuke Support:

"
Since this has crashed nuke I have logged this as a bug under:

Bug 26471 - QDialog crashes nuke if left open when closing nuke

This has notified engineering and if they come back with a workaround I will
let you know.
"

that's all for the moment... snif...
thanks all of you for your contributions :)

On Wed, Apr 4, 2012 at 4:43 AM, Brogan Ross <[email protected]> wrote:
> instance() returns a QtCore.QCoreApplication object
> and activeWindow() returns a QtGui.QWidget
>
>
>
>
>
>
>
>
> On Tue, Apr 3, 2012 at 7:02 PM, Ivan Busquets <[email protected]>
> wrote:
>>
>> Ah, that might be the problem right there.
>>
>> Don't have access to other QApplication methods at hand, but do you
>> get anything from the following commands? Or just 'None' again?
>>
>> from PySide import QtCore, QtGui
>> app = QtGui.QApplication
>> print app.instance(), app.activeWindow()
>>
>>
>> On Tue, Apr 3, 2012 at 6:51 PM, Brogan Ross <[email protected]> wrote:
>> > Actually, it returns blank :(
>> >
>> >
>> >
>> >
>> >
>> > On Tue, Apr 3, 2012 at 6:45 PM, Ivan Busquets <[email protected]>
>> > wrote:
>> >>
>> >> Sorry to hear that didn't work for you either
>> >>
>> >> Not an expert on PyQt/PySide (and much less on Windows :p), but if
>> >> you're getting a segfault with the above example, it sounds like the
>> >> parent of your MainWindow widget is not being set correctly.
>> >>
>> >> What do you get if you run this? (You should get the title of your
>> >> main Nuke window)
>> >>
>> >> from PySide import QtCore, QtGui
>> >> app = QtGui.QApplication.activeWindow()
>> >> print app.windowTitle()
>> >>
>> >>
>> >>
>> >>
>> >> On Tue, Apr 3, 2012 at 6:40 PM, Brogan Ross <[email protected]>
>> >> wrote:
>> >> > Oh also, sadly we are in a Windows facility and the Qt.Qindow doesn't
>> >> > seem
>> >> > to promote the widget.
>> >> > And for "In the background", I mean I'd like the window to display
>> >> > but
>> >> > then
>> >> > if you click back in the Nuke interface, I'd like the window go
>> >> > behind
>> >> > nuke.
>> >> >  If I use your example it does that, but I get the crash at close.
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > On Tue, Apr 3, 2012 at 6:17 PM, Brogan Ross <[email protected]>
>> >> > wrote:
>> >> >>
>> >> >> For a second there I thought this was gonna work.  Well, I mean it
>> >> >> does.
>> >> >>  It creates a separate window, but it brings me back to the original
>> >> >> issue
>> >> >> of Nuke crashing if the window is still open when closing Nuke.
>> >> >> I'm going to try going make to setting the global variable and see
>> >> >> if I
>> >> >> can get that working with an onClose callback.
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> On Tue, Apr 3, 2012 at 3:03 PM, Ivan Busquets
>> >> >> <[email protected]>
>> >> >> wrote:
>> >> >>>
>> >> >>> When you say you want it to be "in the background", do you mean
>> >> >>> that
>> >> >>> it's stealing focus from the parent's window when it's created? Or
>> >> >>> that the OS doesn't see it as a separate window?
>> >> >>>
>> >> >>> As Nathan said, setting the Qt.Window flag on your Dialog/Widget
>> >> >>> "should" promote it to its own Window, but I've only tried that in
>> >> >>> Linux, so I don't know if this is any different on other platforms.
>> >> >>>
>> >> >>> As a workaround, if you already have your Widget/Dialog class, you
>> >> >>> could just make a QMainWindow class as a container, and add your
>> >> >>> widget to it. I've done this before to re-use a QWidget in
>> >> >>> different
>> >> >>> places, for example.
>> >> >>>
>> >> >>> The example below is just a quick test, but it might give you an
>> >> >>> idea:
>> >> >>>
>> >> >>> from PySide import QtCore, QtGui
>> >> >>>
>> >> >>> class NewWindow(QtGui.QMainWindow):     # This is your MainWindow
>> >> >>> container
>> >> >>>    def __init__(self, parent=None):
>> >> >>>        super(NewWindow, self).__init__(parent)
>> >> >>>        self.ownWidget = myWidget()    # Add your own widget to this
>> >> >>> window
>> >> >>>        self.setCentralWidget(self.ownWidget)
>> >> >>>
>> >> >>> class myWidget(QtGui.QDialog):
>> >> >>>  def __init__(self, parent=None):
>> >> >>>      super(myWidget, self).__init__(parent)
>> >> >>>      self.setLayout(QtGui.QVBoxLayout())
>> >> >>>      self.textlabel = QtGui.QLabel("some text")
>> >> >>>      self.layout().addWidget(self.textlabel)
>> >> >>>
>> >> >>> f = NewWindow(QtGui.QApplication.activeWindow())    # Create a
>> >> >>> NewWindow instance as a child of Nuke
>> >> >>> f.show()
>> >> >>>
>> >> >>>
>> >> >>> Hope that helps.
>> >> >>>
>> >> >>> Cheers,
>> >> >>> Ivan
>> >> >>>
>> >> >>> On Tue, Apr 3, 2012 at 1:52 PM, Brogan Ross <[email protected]>
>> >> >>> wrote:
>> >> >>> > Nathan, that doesn't seem to work for me.  It still leaves the
>> >> >>> > window
>> >> >>> > on top
>> >> >>> > of Nuke.
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > On Tue, Apr 3, 2012 at 10:02 AM, Nathan Rusch
>> >> >>> > <[email protected]>
>> >> >>> > wrote:
>> >> >>> >>
>> >> >>> >> As I mentioned last night (and after testing to confirm that it
>> >> >>> >> works),
>> >> >>> >> you set the Qt.Window flag on your Widget or Dialog (works for
>> >> >>> >> either).
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> from PySide import QtCore, QtGui
>> >> >>> >>
>> >> >>> >> class ExtraNukeWindow(QtGui.QDialog):
>> >> >>> >>   def __init__(self, parent=QtGui.QApplication.activeWindow()):
>> >> >>> >>       super(ExtraNukeWindow, self).__init__(parent)
>> >> >>> >>       self.setWindowFlags(QtCore.Qt.Window)
>> >> >>> >>
>> >> >>> >> ExtraNukeWindow().show()
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> -Nathan
>> >> >>> >>
>> >> >>> >> -----Original Message----- From: Matthieu Cadet
>> >> >>> >> Sent: Tuesday, April 03, 2012 9:02 AM
>> >> >>> >>
>> >> >>> >> To: Nuke Python discussion
>> >> >>> >> Subject: Re: [Nuke-python] PySide window makes nuke crash on
>> >> >>> >> close
>> >> >>> >>
>> >> >>> >> @Johan, yep i've made made a mistake in my code sample, normally
>> >> >>> >> i
>> >> >>> >> always set parent=None in the __init__\
>> >> >>> >> but if i put like you say :
>> >> >>> >>
>> >> >>> >> def __init__(self,parent=QtGui.QApplication.activeWindow())
>> >> >>> >>
>> >> >>> >> Nuke don't crashs!!!! this is exactly what i want, but..., when
>> >> >>> >> set
>> >> >>> >> the parent to Nuke,
>> >> >>> >> the QDialog is now part of Nuke window, it's no more a separated
>> >> >>> >> window ( is not listed
>> >> >>> >> in the taskbar in Windows, and cannot be accessed by Alt+Tab
>> >> >>> >> switch
>> >> >>> >> )
>> >> >>> >>
>> >> >>> >> @Brogan, have you found any trick for doing what you want for
>> >> >>> >> your
>> >> >>> >> custom PySide window?
>> >> >>> >>
>> >> >>> >> On Tue, Apr 3, 2012 at 7:05 AM, Nathan Rusch
>> >> >>> >> <[email protected]>
>> >> >>> >> wrote:
>> >> >>> >>>
>> >> >>> >>> I’m not in front of any functional PySide installs at the
>> >> >>> >>> moment,
>> >> >>> >>> but
>> >> >>> >>> if
>> >> >>> >>> I
>> >> >>> >>> remember correctly, you just need to call
>> >> >>> >>> self.setWindowFlags(Qt.Window)
>> >> >>> >>> in
>> >> >>> >>> your QDialog’s __init__.
>> >> >>> >>>
>> >> >>> >>> -Nathan
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> From: Brogan Ross
>> >> >>> >>> Sent: Monday, April 02, 2012 9:44 PM
>> >> >>> >>> To: Nuke Python discussion
>> >> >>> >>> Subject: Re: [Nuke-python] PySide window makes nuke crash on
>> >> >>> >>> close
>> >> >>> >>>
>> >> >>> >>> I'm in the same boat as, Matthieu.  I don't want the dialog to
>> >> >>> >>> lock
>> >> >>> >>> up
>> >> >>> >>> Nuke.  I need it to just appear and be available if needed.
>> >> >>> >>>
>> >> >>> >>> I was doing things slightly different than Matthieu
>> >> >>> >>>
>> >> >>> >>> class TestWindow(QtGui.QWidget):
>> >> >>> >>>    def __init__(self, parent=None):
>> >> >>> >>>        QtGui.QWidget.__init__(self, parent)
>> >> >>> >>>        self.setLayout(QtGui.QVBoxLayout())
>> >> >>> >>>        self.line = QtGui.QLabel("some text")
>> >> >>> >>>        self.layout()
>> >> >>> >>>
>> >> >>> >>> tw = TestWindow()
>> >> >>> >>> tw.show()
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> However, if I switch it over to QDialog and use activeWindow()
>> >> >>> >>> as
>> >> >>> >>> a
>> >> >>> >>> Johan
>> >> >>> >>> said, everything works fine, no crashing.  With one exception.
>> >> >>> >>>  The
>> >> >>> >>> window
>> >> >>> >>> stays on top of Nuke and I want it to be able to be in the
>> >> >>> >>> background.
>> >> >>> >>>
>> >> >>> >>> Sorry, I'm very new to PyQt/PySide.
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> Thanks
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> ________________________________
>> >> >>> >>> _______________________________________________
>> >> >>> >>> Nuke-python mailing list
>> >> >>> >>> [email protected],
>> >> >>> >>> http://forums.thefoundry.co.uk/
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> _______________________________________________
>> >> >>> >>> Nuke-python mailing list
>> >> >>> >>> [email protected],
>> >> >>> >>> http://forums.thefoundry.co.uk/
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>> >>>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> --
>> >> >>> >> Matthieu Cadet
>> >> >>> >> Compositor Artist & TD,
>> >> >>> >> nWave Digital
>> >> >>> >> [email protected]
>> >> >>> >> _______________________________________________
>> >> >>> >> Nuke-python mailing list
>> >> >>> >> [email protected],
>> >> >>> >> http://forums.thefoundry.co.uk/
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>> >> _______________________________________________
>> >> >>> >> Nuke-python mailing list
>> >> >>> >> [email protected],
>> >> >>> >> http://forums.thefoundry.co.uk/
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > _______________________________________________
>> >> >>> > Nuke-python mailing list
>> >> >>> > [email protected],
>> >> >>> > http://forums.thefoundry.co.uk/
>> >> >>> >
>> >> >>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>> >
>> >> >>> _______________________________________________
>> >> >>> Nuke-python mailing list
>> >> >>> [email protected],
>> >> >>> http://forums.thefoundry.co.uk/
>> >> >>>
>> >> >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Nuke-python mailing list
>> >> > [email protected], http://forums.thefoundry.co.uk/
>> >> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >> >
>> >> _______________________________________________
>> >> Nuke-python mailing list
>> >> [email protected], http://forums.thefoundry.co.uk/
>> >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >
>> >
>> >
>> > _______________________________________________
>> > Nuke-python mailing list
>> > [email protected], http://forums.thefoundry.co.uk/
>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>> >
>> _______________________________________________
>> Nuke-python mailing list
>> [email protected], http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>



-- 
Matthieu Cadet
Compositor Artist & TD,
nWave Digital
[email protected]
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to