Qt視窗雙螢幕顯示及拖動

2021-08-20 05:16:15 字數 1087 閱讀 5080

介面程式,需要啟動2個例項,分別放在兩個螢幕上:

實現方式:

int screennum = desktop->numscreens();

獲取當前環境的螢幕個數,如果為2個螢幕,返回值為2。

根據螢幕索引號獲取螢幕位置,如果為2個螢幕,預設計算機主螢幕index=0,外接顯示器index = 1:

int

index=1;

qrect rect = desktop->screengeometry(index);

在顯示視窗前,呼叫setgeometry。

mainwindow* window = new mainwindow (null);

window

->setgeometry(rect);

window

->show();

另外乙個例項採用相同的方式設定顯示的螢幕。

注: 之前嘗試使用qwidget *screen(int screen = -1);直接獲取當前螢幕對於的qwidget 物件,發現不能生效。

qwidget *

parent

= desktop -> screen(1);

mainwindow* window =

new mainwindow (parent);

最後發現,在使用qt-4.8版本中,windows下該介面沒有實際功能。

/*qdesktopwidget_win.cpp*/

qwidget *qdesktopwidget::screen(int

/* screen */)

在主視窗類下,

mousepressevent中,儲存視窗原來的視窗索引old_index ;

mousereleaseevent獲取當前的索引,如果與old_index不同,傳送訊號,通知切換螢幕;

切換螢幕槽函式:

void

mainwindow::slotswitchscreen(const int nscreenno)

Qt視窗雙螢幕顯示及拖動

雙螢幕顯示 介面程式,需要啟動2個例項,分別放在兩個螢幕上 實現方式 12 獲取當前環境的螢幕個數,如果為2個螢幕,返回值為2。根據螢幕索引號獲取螢幕位置,如果為2個螢幕,預設計算機主螢幕index 0,外接顯示器index 1 int index 1 qrect rect desktop scre...

Qt視窗螢幕居中顯示

視窗的螢幕居中顯示問題,在各開發工具中原理相同,首先使用特定的方法得到顯示螢幕的寬度和高度,再根據視窗本身的寬度和高度計算出視窗的左上角座標位置.qt中可以採用兩種方法達到視窗的螢幕居中顯示 方法一 顯示前先計算出視窗顯示位子,並移到對應位子後再顯示視窗 在窗體類的構造方法中,如果使用 setfix...

Qt視窗螢幕居中顯示

視窗的螢幕居中顯示問題,在各開發工具中原理相同,首先使用特定的方法得到顯示螢幕的寬度和高度,再根據視窗本身的寬度和高度計算出視窗的左上角座標位置.qt中可以採用兩種方法達到視窗的螢幕居中顯示 方法一 顯示前先計算出視窗顯示位子,並移到對應位子後再顯示視窗 在窗體類的構造方法中,如果使用 setfix...