使用双头图形卡上的qt-creator在不同的显示器上运行2个UI

时间:2013-02-05 06:05:12

标签: linux qt qt-creator multiple-monitors

我的系统上有双显卡(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

工作正常。

2 个答案:

答案 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值