PDA

View Full Version : Window always on top


madeinjava
08-23-2013, 04:57 AM
Hi all,

Is there any way to get my vizard window always on top?
I have an application that will run parallel with vizard's window together in the same screen. but when I click on my app button the vizard window is covered again with my main app.
This is my vizard window setup:

...
viz.window.setPosition(500,500)
viz.window.setSize(700,300)
viz.window.setBorder(viz.BORDER_NONE)
viz.window.setFloat()

viz.go()
...
...
even though in the vizard help the setFloat() function will set the window to stay on top but here in my case it does not.
Its work only when during the compiling I press the vizard logo. then I get my vizard window always on top. but I can not make it when publishing to exe since you can not press the vizard logo when you publish to EXE file.

Is there any way to get my vizard window always stay on top?

Thanks!

Frank Verberne
08-23-2013, 09:09 AM
The function viz.window.setFloat() should indeed make your vizard window stay on top of other windows. You mention something about pressing the Vizard logo. I don't know what you're doing in the rest of your code, but if your code is in some kind of loop from the start, it could be that the first frame is not drawn yet, and nothing of the settings are applied. You could add this piece of code to wait for the first frame to be drawn:

import viz
import viztask

def wait():
yield None

viztask.schedule(wait())

To be sure, does this code alone also give troubles:
import viz

viz.window.setPosition(500,500)
viz.window.setSize(700,300)
viz.window.setBorder(viz.BORDER_NONE)
viz.window.setFloat()

viz.go()
It works in Vizard 4, and it should work in Vizard 3 as well.

Furthermore, check the settings of the application you want to run in parallel. If both of them want to be on top, you could get issues...

farshizzo
08-23-2013, 09:27 AM
I believe the problem is that the command is being called before the window is created ( i.e. viz.go() ). Try changing your code to the following:viz.window.setPosition(500,500)
viz.window.setSize(700,300)
viz.window.setBorder(viz.BORDER_NONE)

viz.go()

viz.window.setFloat()

This will be fixed in a future release though.

Frank Verberne
08-23-2013, 09:52 AM
That was my original thought as well, although in Vizard 4 that's no problem.

madeinjava
08-27-2013, 02:10 PM
I believe the problem is that the command is being called before the window is created ( i.e. viz.go() ). Try changing your code to the following:viz.window.setPosition(500,500)
viz.window.setSize(700,300)
viz.window.setBorder(viz.BORDER_NONE)

viz.go()

viz.window.setFloat()

This will be fixed in a future release though.

Works like a charm! Thanks farshizzo and Frank!