[Interest] New window in Qt makes the application activate

Konrad Rosenbaum konrad at silmor.de
Mon Feb 3 10:57:02 CET 2014


On Friday, Friday 31 January 2014 at 17:49, John Weeks wrote:
> Have you worked with scientists? :) Our customers may run a process that
> creates literally hundreds of graphs, each in a window, by running an
> automated process.

Yes, it was the best time of my life (except for some parts of childhood)!

At least if you have a brilliant idea in front of a scientist you have a 
decent chance of them noticing... ;-)

> Our customers can write code in our internal language to do very lengthy
> computations analyzing their data. Part of that might include creating a
> graph (in a window!) showing the result of some part of the analysis, or
> of one of many data sets. Being able to see that graph come up allows them
> to monitor the progress of the analysis; having it come up while the
> application is not the active application allows them to compose e-mail,
> browse the web, etc., during an analysis that might take many minutes or
> even hours or days.
> 
> So, no, it wouldn't work to make the windows minimized.

Ok, so the windows are created by user code - that explains why refactoring is 
not exactly desired...

I just tried to recreate your problem (using Qt 5.1.1):

* on Windows 7 it does not matter whether the new window is a child of some 
other window or has some flags set - if the app is not active, the window goes 
to the background

* likewise on Linux with KDE 4.8 it originally did not matter either, but the 
window always came to the foreground - it seemed my KWin is configured in a 
way that enforces this, I found that I could tweak this behavior by changing 
my system settings (Workspace - Window Behavior ->> Focus Stealing Prevention, 
if "Low" the window always pops up, if "High" the window does not activate 
unless it has the mouse under it)

I also experimented with setAttribute(Qt::WA_ShowWithoutActivating) - but my 
system priorities seemed to score higher than this hint

> At the end of the process they want a collection of graphs that will most
> likely then wind up as the basis for a report or a published paper.
> 
> And, again, Windows and Mac OS X aren't doing this- why does Qt do it?

Sorry, I'm not deep enough inside  the Qt sources...

Just: Qt has an incredible amount of customizability. Some default of Qt must 
be slightly different from whatever toolkit you used before.

I suggest you experiment around with a few attributes, hints, etc. Check out 
the documentation of QWidget - you can fine tune this thing to hell and 
back...

My long term suggestion however would still have to be this: give some serious 
thought to long term usability. Related results are often expected in the same 
window (even on Linux these days!). What I do in an app that can run for hours 
before coming up with all the results is: I put it all into tabs and I also 
make sure the results are stored on disk (in some kind of embedded DB), so 
they can be retrieved quickly next time without wasting several CPU hours 
again.



	Konrad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140203/60d0b240/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140203/60d0b240/attachment.sig>


More information about the Interest mailing list