有一种(更好的多平台)方式如何选择Qt / QML应用程序在全屏显示时应该显示哪个显示器?我可以在Ubuntu上切换主显示〜/ .config / monitors.xml,但是这也会影响其他程序,所以QT更好吗? 感谢。
ApplicationWindow {
..
visible: true
visibility: "FullScreen"
..
}
答案 0 :(得分:2)
我想纯粹的QML
是不可能的。但你可以尝试一些C ++扩展:
class ScreenManager : public QObject
{
Q_OBJECT
public:
explicit ScreenManager(QObject *parent = 0);
Q_INVOKABLE int screenCount() const {
return QGuiApplication::screens().count();
}
Q_INVOKABLE void setScreen(QWindow * window, int screen) {
if(screen >= 0 && screen < QGuiApplication::screens().count())
window->setScreen(QGuiApplication::screens().at(screen));
}
};
您可以将对象公开为QML
作为单件或独立项目。
所以在QML中使用它:
ApplicationWindow {
id: mainWindow
visible: true
Component.onCompleted: {
console.log(screenManager.screenCount());
screenManager.setScreen(mainWindow,1); // for a second screen
}
ScreenManager {
id: screenManager
}
}
但是目前我必须使用更多1个屏幕的计算机,所以我没有测试代码。