如何在Qt小部件中获取屏幕变更事件

4
在我的Qt应用程序中,我有一些浮动的QtWidgets。我想知道当QWidget被拖到另一个屏幕时,以便我可以根据新屏幕的DPI来调整内容的大小。

定期查询 QDesktopWidget::screenNumber() 怎么样? - vahancho
你有没有找到解决办法? - codeling
监听了事件 void QWindow::screenChanged(QScreen *screen) - living on edge
1个回答

0

将您的QGuiApplication中的primaryScreenChanged信号连接到小部件中的插槽。

编辑以添加:经过反思,这可能不会实现您想要的功能 - 它会在应用程序更改屏幕而不是小部件时发出信号。


一个问题,我的应用程序有很多QDialogs,所以这个信号被发射。只有一个Qdialog被移动到其他屏幕而不是主应用程序窗口。 - living on edge
我有DISPLAY1和DISPLAY2,DISPLAY1是主屏幕。当DISPLAY1的HDMI被拔出后,在primaryScreenChanged信号之后,MainWindow会显示在次要屏幕DISPLAY2上,但是MainWindow->screen()仍然是DISPLAY1。 - Acewind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接