Qt6工具提示和下拉菜单显示在错误的屏幕上。

huangapple go评论82阅读模式
英文:

Qt6 Tooltips and dropdowns are shown in wrong screen

问题

我有三个屏幕:一个来自笔记本(索引1)和两个外部显示器(索引3和2):
中间的显示器是主显示器。

我有一个非常基本的Qt 6.2.4应用程序,从零开始创建。只有ui文件mainwindow.ui被修改,main.cppmainwindow.hmainwindow.cpp文件未更改:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>107</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QComboBox" name="comboBox">
        <item>
         <property name="text">
          <string>RGB8</string>
         </property>
        </item>
        <item>
         <property name="text">
          <string>Mono8</string>
         </property>
        </item>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="pushButton">
        <property name="toolTip">
         <string>This is the tooltip of this button</string>
        </property>
        <property name="text">
         <string>Hover to see tooltip</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
    <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>40</height>
       </size>
      </property>
     </spacer>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>400</width>
     <height>20</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <addaction name="actionFirst_option"/>
    <addaction name="actionSecond_option"/>
   </widget>
   <widget class="QMenu" name="menuHelp">
    <property name="title">
     <string>Help</string>
    </property>
    <addaction name="actionAbout"/>
   </widget>
   <addaction name="menuFile"/>
   <addaction name="menuHelp"/>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
  <action name="actionFirst_option">
   <property name="text">
    <string>First option</string>
   </property>
  </action>
  <action name="actionSecond_option">
   <property name="text">
    <string>Second option</string>
   </property>
  </action>
  <action name="actionAbout">
   <property name="text">
    <string>About</string>
   </property>
  </action>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

当应用程序显示在中间的屏幕(3)时,下拉菜单会显示在另一个屏幕(2)上:
Qt6工具提示和下拉菜单显示在错误的屏幕上。
当应用程序显示在左侧屏幕时,下拉菜单会正确显示:
Qt6工具提示和下拉菜单显示在错误的屏幕上。

任何工具提示都会出现相同的问题。

Qt 6.2.4 在本地使用Visual Studio 2019进行了编译。

英文:

I have three screens: one from Laptop (index 1) and two external monitors (indexes 3 and 2):
The display at the center is the main display:

Qt6工具提示和下拉菜单显示在错误的屏幕上。

I have a very basic Qt 6.2.4 application created from scratch. The main.cpp, mainwindow.h and mainWindow.cpp files were not changed, only the ui file mainwindow.ui:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;ui version=&quot;4.0&quot;&gt;
&lt;class&gt;MainWindow&lt;/class&gt;
&lt;widget class=&quot;QMainWindow&quot; name=&quot;MainWindow&quot;&gt;
&lt;property name=&quot;geometry&quot;&gt;
&lt;rect&gt;
&lt;x&gt;0&lt;/x&gt;
&lt;y&gt;0&lt;/y&gt;
&lt;width&gt;400&lt;/width&gt;
&lt;height&gt;107&lt;/height&gt;
&lt;/rect&gt;
&lt;/property&gt;
&lt;property name=&quot;windowTitle&quot;&gt;
&lt;string&gt;MainWindow&lt;/string&gt;
&lt;/property&gt;
&lt;widget class=&quot;QWidget&quot; name=&quot;centralWidget&quot;&gt;
&lt;layout class=&quot;QVBoxLayout&quot; name=&quot;verticalLayout&quot;&gt;
&lt;item&gt;
&lt;layout class=&quot;QHBoxLayout&quot; name=&quot;horizontalLayout&quot;&gt;
&lt;item&gt;
&lt;widget class=&quot;QComboBox&quot; name=&quot;comboBox&quot;&gt;
&lt;item&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;RGB8&lt;/string&gt;
&lt;/property&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;Mono8&lt;/string&gt;
&lt;/property&gt;
&lt;/item&gt;
&lt;/widget&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;widget class=&quot;QPushButton&quot; name=&quot;pushButton&quot;&gt;
&lt;property name=&quot;toolTip&quot;&gt;
&lt;string&gt;This is the tooltip of this button&lt;/string&gt;
&lt;/property&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;Hover to see tooltip&lt;/string&gt;
&lt;/property&gt;
&lt;/widget&gt;
&lt;/item&gt;
&lt;/layout&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;spacer name=&quot;verticalSpacer&quot;&gt;
&lt;property name=&quot;orientation&quot;&gt;
&lt;enum&gt;Qt::Vertical&lt;/enum&gt;
&lt;/property&gt;
&lt;property name=&quot;sizeHint&quot; stdset=&quot;0&quot;&gt;
&lt;size&gt;
&lt;width&gt;20&lt;/width&gt;
&lt;height&gt;40&lt;/height&gt;
&lt;/size&gt;
&lt;/property&gt;
&lt;/spacer&gt;
&lt;/item&gt;
&lt;/layout&gt;
&lt;/widget&gt;
&lt;widget class=&quot;QMenuBar&quot; name=&quot;menuBar&quot;&gt;
&lt;property name=&quot;geometry&quot;&gt;
&lt;rect&gt;
&lt;x&gt;0&lt;/x&gt;
&lt;y&gt;0&lt;/y&gt;
&lt;width&gt;400&lt;/width&gt;
&lt;height&gt;20&lt;/height&gt;
&lt;/rect&gt;
&lt;/property&gt;
&lt;widget class=&quot;QMenu&quot; name=&quot;menuFile&quot;&gt;
&lt;property name=&quot;title&quot;&gt;
&lt;string&gt;File&lt;/string&gt;
&lt;/property&gt;
&lt;addaction name=&quot;actionFirst_option&quot;/&gt;
&lt;addaction name=&quot;actionSecond_option&quot;/&gt;
&lt;/widget&gt;
&lt;widget class=&quot;QMenu&quot; name=&quot;menuHelp&quot;&gt;
&lt;property name=&quot;title&quot;&gt;
&lt;string&gt;Help&lt;/string&gt;
&lt;/property&gt;
&lt;addaction name=&quot;actionAbout&quot;/&gt;
&lt;/widget&gt;
&lt;addaction name=&quot;menuFile&quot;/&gt;
&lt;addaction name=&quot;menuHelp&quot;/&gt;
&lt;/widget&gt;
&lt;widget class=&quot;QToolBar&quot; name=&quot;mainToolBar&quot;&gt;
&lt;attribute name=&quot;toolBarArea&quot;&gt;
&lt;enum&gt;TopToolBarArea&lt;/enum&gt;
&lt;/attribute&gt;
&lt;attribute name=&quot;toolBarBreak&quot;&gt;
&lt;bool&gt;false&lt;/bool&gt;
&lt;/attribute&gt;
&lt;/widget&gt;
&lt;widget class=&quot;QStatusBar&quot; name=&quot;statusBar&quot;/&gt;
&lt;action name=&quot;actionFirst_option&quot;&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;First option&lt;/string&gt;
&lt;/property&gt;
&lt;/action&gt;
&lt;action name=&quot;actionSecond_option&quot;&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;Second option&lt;/string&gt;
&lt;/property&gt;
&lt;/action&gt;
&lt;action name=&quot;actionAbout&quot;&gt;
&lt;property name=&quot;text&quot;&gt;
&lt;string&gt;About&lt;/string&gt;
&lt;/property&gt;
&lt;/action&gt;
&lt;/widget&gt;
&lt;layoutdefault spacing=&quot;6&quot; margin=&quot;11&quot;/&gt;
&lt;resources/&gt;
&lt;connections/&gt;
&lt;/ui&gt;

When the application is in the screen at the center (3), the dropdown are shown in another screen (2):
Qt6工具提示和下拉菜单显示在错误的屏幕上。
When the application is in the screen at the left, the dropdown are shown correctly:
Qt6工具提示和下拉菜单显示在错误的屏幕上。

The same happens with any tooltip.

Qt 6.2.4 was compiled locally with Visual Studio 2019

The same issue happens if I reorder the screens (1,2,3) or I disable the screen 1

答案1

得分: 0

这个问题在Qt 6.5.1中已解决,所以我将关闭这个问题。

英文:

This issue is solved in Qt 6.5.1. So I'm closing this question.

huangapple
  • 本文由 发表于 2023年5月24日 21:49:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/76324253.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定