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

我有一个双显示器显卡,在我的系统上(RHEL 6.3)。

我使用qt创build器(qt-4.8)开发了一个简单的应用程序,它引发了两个不同的UI。

当我执行这个时候,这两个UI只在一个显示器中启动。

我需要的是我的一个用户界面应该在主屏幕上运行,在次屏幕上运行一个(即0.0和0.1)。

我应该如何使用qt-creator来做到这一点?

xclock -display :0.0 xclock -display :0.1 

工作正常。

Tejas的,

要在辅助监视器上显示第二个用户界面,可以使用第二个用户界面的setParent属性:

int screenNumber = 1; / *所需的屏幕没有* /

QWidget secondaryUI_widget; / *辅助显示器上要显示的辅助用户界面对象* /

QDesktopWidget myDesktopWidget; / *创建一个QDesktopWidget的对象* /

secondUI_myDesktopWidget.setParent(myDesktopWidget(screenNumber));

上面的行将设置你想要显示你的页面作为你的UI对象的父页面所需的屏幕。 现在你可以在你的程序中的任何地方为你的第二个用户界面调用show()函数,第二个用户界面将显示在所需的屏幕编号上,通过screenNumber值

您可以使用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());