2016-03-30 6 views
0

Ich habe eine Anwendung, die ich versuche, Vollbild zu machen. Ich habe in anderen Posts gesehen, dass wenn ich was in meinem Code mache, sollte es mir die Größe des Bildschirms geben.Qt sagt immer, dass meine Bildschirmgröße 0

Ich habe ein Fenster mit einem Wert, der sich ändert (skalieren), so dass ich einen Zeiger dafür übergeben.

Dann verwende ich QDesktopWidget :: screenGeometry(), um die Bildschirmgeometrie meines Fensters zu erhalten, aber die Methoden width() und height() geben immer 0 zurück! Ich dachte, vielleicht existierte der Bildschirm noch nicht auf einem Bildschirm, also gab er vielleicht 0 zurück, weil da nichts war, aber screenCount() gab erfolgreich 1 zurück, also weiß ich nicht, was vor sich geht. Warum gibt meine Methode immer 0 zurück?

+1

Sind Sie positiv 'window-> scale! = 0'? Beachten Sie auch, dass QDesktopWidget betriebssystemspezifische Aufrufe benötigt. Wird Ihr Betriebssystem von QDesktopWidget unterstützt? Verwenden Sie auch 'QApplication :: desktop()', anstatt Ihre eigene Instanz zu instanziieren. – alediaferia

+1

Sie sollten die Dokumentation lesen, bevor Sie Fragen im Internet stellen: http://doc.qt.io/qt-5.6/qdesktopwidget.html – Drop

Antwort

2

Es ist viel einfacher. Vollbild ist eine Flagge. Sie können es wie folgt:

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

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

    return a.exec(); 
} 

Es besteht keine Notwendigkeit, es zu tun manuell ist:

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

Sie einfach Hauptfenster im Vollbildmodus showFullScreen() statt show() durch den Aufruf öffnen.