简体   繁体   中英

How to display a window on a secondary display in PyQT?

I am developing an application; which will run on a system with 2 displays. I want my PyQt app to be able to automatically route a particular window to the second screen.

How can this be done in Qt? (either in Python or C++)

Use QDesktopWidget to access to screen information on multi-head systems.

Here is pseudo code to make a widget cover first screen.

QDesktopWidget *pDesktop = QApplication::desktop ();

//Get 1st screen's geometry
QRect RectScreen0 = pDesktop->screenGeometry (0);

//Move the widget to first screen without changing its geometry
my_Widget->move (RectScreen0.left(),RectScreen0.top());

my_pWidget->resize (RectScreen0.width(),RectScreen0.height());

my_Widget->showMaximized();

The following works for me in PyQt5

import sys
from PyQt5.QtWidgets import QApplication, QDesktopWidget

app = QApplication(sys.argv)

widget = ... # define your widget
display_monitor = ... # the number of the monitor you want to display your widget

monitor = QDesktopWidget().screenGeometry(display_monitor)
widget.move(monitor.left(), monitor.top())
widget.showFullScreen()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM