我有一个双显示器显卡,在我的系统上(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());