2013-02-05 25 views
2

我的系統(RHEL 6.3)上有一個雙顯卡圖形卡。在雙頭圖形卡上使用qt-creator在不同顯示器上運行2個UI

我開發了一個使用qt creator(qt-4.8)的簡單應用程序,該應用程序引發兩個不同的UI。

當我執行此操作時,兩個UI僅在一個顯示屏中啓動。

我需要的是我的一個用戶界面應該在主屏幕上運行並且在輔助屏幕上運行一個(即0.0和0.1)。

我應該如何使用qt-creator來做到這一點?

xclock -display :0.0 
xclock -display :0.1 

工作正常。

回答

1

Tejas的,

要在輔助監視器可以使用顯示你的第二個UI第二個用戶界面的setParent屬性爲:

int screenNumber = 1;/*所需的屏幕號碼*/

QWidget secondaryUI_widget;/*在輔助監視器上顯示的次要UI對象*/

QDesktopWidget myDesktopWidget;/*創建QDesktopWidget的一個對象*/

secondUI_myDesktopWidget.setParent(myDesktopWidget(screenNumber));

上述行將設置所需的屏幕,您希望將其頁面顯示爲UI對象的父頁面。 現在你可以在你的程序中的任何地方爲你的第二個UI調用show()函數,第二個UI將顯示在所需的屏幕編號上,通過screenNumber值

+0

謝謝@Abhishek,這解決了我的問題。 – Tejas

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()); 
相關問題