我的系统上有双显卡(RHEL 6.3)。
我使用qt creator(qt-4.8)开发了一个简单的应用程序,它会抛出两个不同的UI。
当我执行此操作时,两个UI仅在一个显示中启动。
我需要的是我的一个UI应该在主屏幕上运行,一个在二级屏幕上运行(即0.0和0.1)。
我应该如何使用qt-creator?
xclock -display :0.0
xclock -display :0.1
工作正常。
答案 0 :(得分:2)
您可以使用QDesktopWidget获取屏幕信息。它允许您使用
查询屏幕数量和每个屏幕的尺寸int QDesktopWidget::screenCount () const;
const QRect QDesktopWidget::availableGeometry ( int screen = -1 ) const;
从那里,您可以将窗口小部件移动到任何给定的屏幕。例如,如果指定的屏幕不可用,则以下代码将窗口小部件移动到给定屏幕或默认窗口:
QDesktopWidget* w = QApplication::desktop();
//some value
int mydesiredscreen = 1;
//fallback to default screen if none
if(mydesiredscreen >= w->screenCount()) mydesiredscreen = -1;
QRect rect1 = w->availableGeometry(mydesiredscreen);
mywindow->move(rect1.topLeft());
答案 1 :(得分:1)
特加斯,
要在辅助监视器上显示第二个UI,您可以将第二个UI的setParent属性用作:
int screenNumber = 1; / *所需的屏幕没有* /
QWidget secondaryUI_widget; / *辅助UI对象,将显示在辅助监视器上* /
QDesktopWidget myDesktopWidget; / *创建QDesktopWidget * /
的对象secondUI_myDesktopWidget.setParent(myDesktopWidget(screenNumber));
上面的行将设置所需的屏幕,您希望将该页面显示为UI对象的父级。 现在你可以在你的程序中的任何地方为你的第二个UI调用show()函数,第二个UI将在所需的屏幕编号上显示为screenNumber值