の場合QWidget
、フルスクリーンで表示されるかどうかをテストできますflags() & Qt::WindowFullScreen
。理由が何であれ、常に返されるように、同じことがQQuickView
( aQQuickWindow
である a QWindow
) では機能しないようです。次のコードを使用してウィンドウを表示します。QWindow::flags()
Qt::WindowMinimized
QQuickView w;
w.setSource(...);
w.show(); /* or */ w.showFullScreen();
Qt 5.1 でQWindow::visibility()
導入されました。QWindow::FullScreen
正しく動作する新しい列挙型を返します。
Qt 5.0.xQWindow
で aがフルスクリーンで表示されているかどうかをテストするにはどうすればよいですか? 「全画面切り替え」機能を実装したい。現在の状態を追跡することは間違った方法のようです (それでも回避策になる可能性はあります)。戻る理由がわかりません...QWindow::flags()
Qt::WindowMinimized
問題を再現するコード ( を押しRETURNて の出力を表示QWindow::flags()
):
test.qml
import QtQuick 2.0
Rectangle {
signal test();
width: 100; height: 100
focus: true
Keys.onReturnPressed: test()
}
main.cpp
#include <QGuiApplication>
#include <QQuickView>
#include <QQuickItem>
#include <QDebug>
class Test : public QObject {
Q_OBJECT
public slots:
void test() {
QQuickItem *item = qobject_cast<QQuickItem*>(sender());
QQuickWindow *window = item->window();
qDebug() << window->flags(); // Will print 0x1 == Qt::WindowMinimized
}
};
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
QQuickView w;
w.setSource(QUrl("...(relative path to the qml file from above)..."));
w.show(); // Please also test w.showFullScreen();
QObject::connect(w.rootObject(), SIGNAL(test()),
new Test, SLOT(test()));
return a.exec();
}
#include "main.moc"
テストプロ
QT += quick
TEMPLATE = app
SOURCES += main.cpp