最近要用到多屏顯示。
多屏顯示的原理其實很好理解,就拿橫向擴充套件來說:
計算機把桌面的 寬度擴充套件成了 w1(螢幕1的寬度) + w2(螢幕2的寬度) 。
當乙個視窗的起始橫座標 > w1,則 他就被顯示在第二個螢幕上了。
qt的說明文件中用一張圖闡述了這個情況:
返回的qdesktopwidget
儲存著當前桌面的資訊。
注意 ,這個函式必須在建立了。
具體原因,要問qt。
這個desktop有幾個很有用的函式,用來獲取當前的螢幕狀態和解析度
1) int desktop->primaryscreen()
獲取主螢幕的索引序號,(windows開始選單所在的螢幕為主螢幕), 每個副螢幕序號+1
2) int desktop->screencount()
獲取當前螢幕個數
3)qrect
desktop->screengeometry(int screen_index)
根據當前的螢幕序號獲取螢幕寬高等屬性
4) int desktop->width()
獲取虛擬螢幕全寬, 注意這個比較猛,是獲取的總寬度,對於橫向擴充套件屏來說,也就是 螢幕1+ 螢幕2 + ... 的寬度
5) int desktop->height()
獲取虛擬螢幕全高
下面的這個程式就可以測試多屏(只測了橫屏,沒測試縱屏): 根據當前螢幕數量n,生成n個視窗,每個視窗都佔據了乙個螢幕
#include"mainwindow.h"
#include
#include
#include
#include
typedefstructscreen;
screeng_screens[10];
intmain(int
argc,
char
*argv)
sprintf(idx,"total
width[%d]
,total
height[%d]
\n",desktop->width(),desktop->height());
qmessagebox::warning(null,"screen",warning,
qmessagebox::ok);
mainwindowwnd[5];
for(intreturni=0;i
}
Winform程式實現多顯示屏 多螢幕顯示的方法
winform視窗實現多顯示屏顯示的2種方法,本文直接給出了實現 並對其中的一些重要引數做了解釋,需要的朋友可以參考下。一台主機連線了2臺顯示器 2個顯示卡 要求乙個程式的兩個窗體在不同的顯示器上顯示 顯示器1 顯示from1,顯示器2 顯示from2。及說明如下 form1不需要變更 from2新...
乙個顯示選單的程式
建立這個程式的步驟 1 在命令列提示符後鍵入vi mymenu 這個命令啟動vi,並將程式命名為mymenu。2 在空白也出現後按i。這個命令切換到插入模式下工作。3 在空白頁上輸入如下的linux bin bash clear echo echo the telephone book echo e...
乙個顯示彈幕的小程式
效果如圖,原始碼位址 視窗樣式指定ws ex topmost實現置頂 對於一些全屏程式不行,但是對於ppt夠用了 指定ws ex transparent實現滑鼠穿透此視窗 指定ws ex layered並使用updatelayeredwindow繪製視窗實現視窗透明 以上樣式指定都在對話方塊資源編輯...