2016-03-30 12 views
0

私はフルスクリーンを作ろうとしているアプリケーションを持っています。他の記事で、コード内で何をすれば画面のサイズがわかるはずです。Qtは常に私の画面サイズが0であると言います

double MainSpace::getScopeX(paintBox* window){ 
    QDesktopWidget temp; 
    QRect size = temp.screenGeometry(window); 
    return size.width() * window->scale; 
} 

私はその値を変更して(スケール)値を持つウィンドウを持っているので、そのポインタを渡します。

次に、QDesktopWidget :: screenGeometry()を使用してウィンドウの画面ジオメトリを取得しますが、width()メソッドとheight()メソッドは常に0を返します。私はスクリーンがまだスクリーンに存在していなかったと思っていたかもしれません。なぜなら、そこに何もなかったので0を返していたかもしれないが、screenCount()は1を正常に返します。なぜ私のメソッドは常に0を返しますか?

+1

あなたは肯定的な 'window-> scale!= 0'ですか?また、QDesktopWidgetが動作するにはOS固有の呼び出しが必要であることに注意してください。あなたのOSはQDesktopWidgetによってサポートされていますか?また、独自のインスタンスをインスタンス化するのではなく、 'QApplication :: desktop()'を使用してください。 – alediaferia

+1

インターネットで質問を投稿する前に、マニュアルをお読みください。http://doc.qt.io/qt-5.6/qdesktopwidget.html – Drop

答えて

2

はるかに簡単です。フルスクリーンはフラグです。次のようにあなたはそれを設定することができます:あなたは、単に代わりにshow()showFullScreen()を呼び出すことにより、フルスクリーンモードでのメインウィンドウを開くことができ

my_widget->setWindowState(Qt::WindowFullScreen); 
1

:手動でそれを行うには必要はありません

#include "MainWindow.h" 
#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.showFullScreen(); 

    return a.exec(); 
} 

関連する問題