Dropdown menus spawn on other monitor

Problem report for Slicer 4.11.0-2020-08-10 win-amd64.

Some dropdown menus (e.g. for recent modules, layouts, crosshair, but NOT the Modules selector) spawn on a different screen than is occupied by the Slicer application. The screenshot below shows an example with the layout menu. The screenshot bridges an external monitor (upper, where the Slicer window is) and my laptop screen (lower, where the layout menu appears). The top of the layout menu is at the top of my laptop screen.

If I move the Slicer application window to my laptop screen, all the dropdown menus appear in their proper places.

This problem was not present in the prior preview release I used, 2020-05-27. It is also not present in any of the module UI dropdowns (built-in or ones I’ve added with QComboBox or qMRMLNodeComboBoxes). So far, I have only seen it occur with dropdowns from the Slicer Toolbar. It happens for all of those except the module selector (the one which shows the currently selected module).

Both screens are high resolution (laptop is 3840x2160 and external monitor is 3440x1440).

Interesting - can you report the Qt versions for one that works vs one that doesn’t? (qt.qVersion() in the python window).

That looks similar to https://bugreports.qt.io/browse/QTBUG-85012.

2020-05-27 on Windows was using Qt 5.14.2 and then starting with 2020-05-29 on Windows it is using Qt 5.15.0.

I would guess maybe once there is a Qt 5.15.1, it will be fixed.

I agree it looks very similar. Hopefully it will be resolved soon, it is inconvenient and messy (but ultimately still functional).

This happens to me in Mac in full window mode when I have multiple monitors

Mac handles multiple screens in each monitor, somehow slicer fails to render the menu in the proper one

I haven’t seen this bug on my two-monitory mac setup, but I’ve seen some odd behavior like this on linux, even with single screen sessions (menus pop up a few inches from where they should).

I have had this on my Windows 10 machine, with Qt 5.15.0. When the Slicer main window is on the secondary screen, the module history list shows up in the corner of the primary monitor.

Some stuff are unfortunately not right with Qt 5.15 LTS :frowning:

It is the same issue on my computer too. I’ve been planning to report it…

I’ve created a bug for it so that we consider it for Slicer-5.0 release: https://github.com/Slicer/Slicer/issues/5106

This issue is still present on the 2020-09-15 preview release on Windows. It looks like Qt has been updated to fix this, any word on when that fix will appear in the preview releases? Thanks!

You can follow the progress of updating the Slicer preview factory builds to Qt 5.15.1 in https://github.com/Slicer/DashboardScripts/pull/31. I’ve already confirmed by building Slicer from source with Qt 5.15.1 that it fixes the issue.

1 Like

This issue is almost 4 years old, so I assumed that even with installation (not building from source) it might have been fixed but I am facing the same issue still. Slicer: 5.6.1 r32438 / 117ce5f on Windows 11.

It only happens on secondary monitor I connect using HDMI and not on the primary monitor (laptop screen).

Same thing is happening for me the first time I open a drop down menu on my second monitor. But if I close the menu and open it again it appears in the correct location.

Which menu appears on a wrong monitor? Only the layout selection menu or others, too?

Unfortunately, there is a Qt bug that has not been fixed in Qt-5.12 (that we use in currently Slicer) that very large menus appear on the first screen if they are opened near the bottom of the screen (so that the full menu would not fit below the menu). Maybe upgrading to Qt6 would fix the issue. Or, we could make the layout selector menu shorter (which could be useful anyway, as there are just too many menu items in it now).

image

This kind of drop down menu. It only does that the frst time I open a menu after starting up slicer sometimes. It behaves differently on my home and work set-up, so I guess it has to do with wich screen is the main screen or if I connected the screen after slicer load up maybe.
Nothing major, I just thought it could help find the origin of the issue.

1 Like