2010-10-05 7 views
6

मैं क्यूटी फ्रेमवर्क में एक प्रोग्राम लिख रहा हूं (केवल सीखने के उद्देश्यों के लिए, मैं सी ++ सीखना चाहता हूं)। क्या यह संभव है कि मेरे कंप्यूटर से कितने मॉनीटर जुड़े हों और प्रोग्राम को विभिन्न मॉनिटर पर शुरू करें? मैं प्रॉपर्टी मेनू में एक विकल्प चाहता हूं जहां मैं प्रोग्राम को दिखाने के लिए किस मॉनिटर पर बता सकता हूं।दूसरे मॉनीटर (क्यूटी फ्रेमवर्क) पर प्रोग्राम शुरू करें

मुझे क्यूटी डेवलपर विकी में कुछ भी नहीं मिला, शायद आप लोग इसे कैसे करें इस पर डॉक्यूमेंटेशन के साथ मेरी मदद कर सकते हैं?

धन्यवाद

उत्तर

8

आप QDesktopWidget उपयोग कर सकते हैं कि कितने स्क्रीन आप अपने कंप्यूटर से जुड़ी है और उसके बाद प्रत्येक स्क्रीन के ज्यामिति को पुनः प्राप्त करने की पहचान के लिए:

if (desktopWidget->screenCount() > 1) 
{ 
    QRect geom = desktopWidget->screenGeometry(1); 
    // do something useful with this information 
} 

तुम भी यह देखने के लिए जाँच करने के लिए चाहते हो सकता है यह virtual desktop है, लेकिन इससे आपके उपयोगकर्ताओं के लिए कोई फर्क नहीं पड़ता।

+0

मैं अपने लिंक को अद्यतन करने की जरूरत है। – sje397

12

आप मॉनिटर्स की संख्या और QDesktopWidget उदाहरण के साथ कुल स्क्रीन आकार प्राप्त कर सकते हैं।

QDesktopWidget *desktop = QApplication::desktop(); 
if (1==desktop->screenCount() ) { 
    // single monitor - use built in 
    showFullScreen(); 
} else {  
    QRect rect = desktop->screenGeometry(1); 
    move(rect.topLeft()); 
    setWindowState(Qt::WindowFullScreen);  
} 
0

main.cpp संपादित

#include "mainwindow.h" 
#include <QApplication> 
#include <QWindow> 
#include <QDesktopWidget> 
#include <QDebug> 

int main(int argc, char *argv[]) 
{ 
int ScreenIDWhereToShowWindow = 1; 
QApplication a(argc, argv); 
MainWindow w; 


QDesktopWidget *desk = new QDesktopWidget(); 

w.setGeometry(desk->screenGeometry(ScreenIDWhereToShowWindow)); 
w.showFullScreen(); 
QApplication::setOverrideCursor(Qt::BlankCursor); 

qDebug() << desk->screenGeometry(0); 
qDebug() << desk->screenGeometry(1); 
qDebug() << desk->screenGeometry(2); 
return a.exec(); 
} 
संबंधित मुद्दे