1. 程式人生 > >多螢幕下Qt獲取程式所在螢幕的位置

多螢幕下Qt獲取程式所在螢幕的位置

用QtBrowserplugin開發的ActiveX元件,在IE網頁和WPF桌面客戶端中使用。

在機器接雙顯示器的情況下,彈出以螢幕為基準的窗體時,可用如下方法進行操作:
1.獲取activeX視窗在桌面上的絕對位置
2.通過此絕對位置獲取activeX視窗所在螢幕上的幾何座標資訊
3.計算目標位置時需要加上螢幕的偏移

示例程式碼如下:

//this為ActiveX元件視窗,想要在該視窗所在的螢幕頂部彈出一個工具條m_toobar
QPoint pos = QWidget::mapToGlobal(this->pos()); //獲取activeX視窗在桌面上的絕對位置
QRect deskRt = QApplication::desktop()->screenGeometry(pos);
int x = deskRt.left() + (deskRt.width() - m_toolbar->width()) / 2;  //螢幕偏移 + 相對位置
int y = 0;
m_toobar->move(x, y);
m_toolbar->show();

相關推薦

螢幕Qt獲取程式所在螢幕位置

用QtBrowserplugin開發的ActiveX元件,在IE網頁和WPF桌面客戶端中使用。 在機器接雙顯示器的情況下,彈出以螢幕為基準的窗體時,可用如下方法進行操作: 1.獲取activeX視窗在桌面上的絕對位置 2.通過此絕對位置獲取activeX視窗所在螢幕上的幾

Qt獲取程式目錄和工作目錄

//獲取exe所在的目錄 qDebug()<<"current applicationDirPath: "<<QCoreApplication::applicationDirPath(); //獲取當前程序所在工作目錄 qDebug()<<"current c

Linuxqt 禁止程式執行兩個

Linux系統下qt防止同一程式在系統中執行兩個例項,直接上程式碼:    QEventLoop loop;    connect(&process,SIGNAL(readyReadStandardOutput()),&loop,SLOT(quit())); 

Windows作業系統QT應用程式打包和釋出。

 編寫目的:        Qt程式釋出:在windows下打包成exe檔案的過程的操作說明文件。  定義:        Qt程式在釋出時只需要把需包含的dll動態連結庫檔案放在需要釋出程式同一目錄即可。        實際上Qt5.6已經為 我們準備好了一個非常好用

Windows精確獲取程式的執行時間可精確到微妙

在Windows下可以用系統提供的API函式 QueryPerformanceFrequency 和 QueryPerformanceCounter 來進行高精度的計時,現在的機器基本上都提供這種高精度的計時啦,所以不用擔心。利用該函式可以精確的計時到微妙級別。msdn的描

UbuntuQT控制檯程式無法執行的解決方案以及XTerm的配置方法

我還是很操蛋的在QT下寫控制檯程式了,但是寫完程式後執行時出現瞭如下情況。 程式運行了,但是控制檯中居然只有一個游標在那兒跳啊跳。由於百度的姿勢不對,廢了好多時間,終於明白是因為qt creator不支援Gnome預設的終端gnome-terminal。 所以要換成XTer

Qt 獲取程式執行路徑

 //在需要的地方 QString path; QDir dir; path=dir.currentPath(); QMessageBox::warning(0,

Qt 獲取當前螢幕解析度

  使用Qt製作電腦介面的時候就不能避免遇到不同螢幕解析度的電腦。針對不同解析度對自己設定的介面也需要進行一系列的調整。   在Qt5之前獲取螢幕解析度主要使用desktop()函式,但是在Qt5以後就不在使用,而是使用的QScreen。 使用示例: 在標頭檔案宣告: #in

根據手機螢幕的密度獲取drawable對應目錄的圖片

轉自:https://blog.csdn.net/guolin_blog/article/details/50727753 根據如下方式獲取到螢幕的dpi值: float xdpi = getResources().getDisplayMetrics().xdpi; float yd

微信小程式上拉次載入問題(手指放在螢幕上一直向上拉就會不停的呼叫載入介面)

問題描述:我們經用到上拉載入功能。官方文件上寫的lower-threshold="0",其實僅僅就是當上拉到底部的時候就呼叫接在介面,當滑到底部呼叫介面的時候我們繼續上拉螢幕,結果 就會出現一次上拉多次載入的問題。 解決方法:我先說說思路,我就是利用bindtouchend事件,這個時間就是觸控

Qt 獲取螢幕資訊

    void GetScreenInfo() { QDesktopWidget* desktopWidget = QApplication::desktop(); //獲取可用桌面大小 QRect deskRect = desktopWidget-&g

Qt獲取視窗在整個螢幕的座標

最近在做專案的過程中,遇到了一個問題,由於介面是採用無標題的視窗,除主介面以外還有一些子視窗,我希望子視窗每次彈出都在主視窗的正中間,即使主視窗移動到邊上,子視窗也是顯示在正中間,所以必須獲得父視窗在螢幕的座標位置,然後對子視窗進行this->setGeometry(

VC MFC 獲取螢幕大小 程式視窗大小位置 控制元件大小位置

//下邊兩個函式獲取的是顯示螢幕的大小,但不包括工作列等區域int cx = GetSystemMetrics(SM_CXFULLSCREEN);int cy = GetSystemMetrics(SM_CYFULLSCREEN);printf("螢幕大小(不含工作列):寬

【JS API】指令碼語言-裝置控制介面說明-獲取裝置的螢幕顏色深度

getColorBits 原型: getColorBits() 是否支援多裝置: 不支援 對應的 REST API: 獲取當前裝置的螢幕顏色深度 (getColorBits) 描述: 獲取當前裝置的螢幕顏色深度 什麼是顏色深度? 顏色深度簡單說就是最多支援多少種顏色。

編寫一個Java程式螢幕上輸出1!+2!+3!+……+10!的和

package test; /** * @author 作者 * @version 建立時間:2018年10月19日 上午8:28:09 * 類說明 : 編寫一個Java程式在螢幕上輸出1!+2!+3!+……+10!的和 */ public class Xdemo { public

#小程式#獲得螢幕高度,view高度

wxml中:<view id='getheight'></view> var query = wx.createSelectorQuery(); query.select('#getheight').boundingClientRect() query.exec(func

在小螢幕和手機螢幕,Bootstrap漢堡導航的自動摺疊隱藏

最近在使用Bootstrap框架做網頁時發現,在小螢幕和手機螢幕之下(max-width: 768px),導航欄不能在點選導航連結時,自動摺疊導航欄。或者在展開導航欄後,如果不點選其中的導航連結,使用者在選擇滑動螢幕時,不能做到自動摺疊導航欄。需要使用者手動點選摺疊按鈕,才能收回去。這在小螢幕寶貴的

Qt qtableview 行選中,獲取行號

QList <int> GetRowId::requestRowId() {     QItemSelectionModel *selections =  ui->tableView_showExecuteInfo->selectionMo

Linux打包釋出Qt應用程式

Linux下打包釋出Qt應用程式 Linux下打包釋出Qt應用程式 1. 編譯檔案 2.巧用指令碼檔案 新建檔案 新增指令碼 執行指令碼 打包釋出 Linux

PHP獲取單選拉列表,拉列表,單選框,複選框內的值

PHP獲取單選下拉列表,多選下拉列表,單選框,複選框內的值,此例將當前頁作為提交資料的頁面。 <form action=" " method="post" accept-charset="utf-8"> <!--單選下拉 學歷--> <selec