我希望在我的Ubuntu 14.04计算机上有一个Qt应用程序在不同的显示输出(屏幕)上显示两个窗口。有人知道怎么做吗?
嵌入式Linux的Qt documentation是迄今为止我能找到的,但它对我没有帮助。
修改 根据您的意见,我已经完成了这项工作,但它并没有按预期工作:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view1(QUrl(QStringLiteral("qrc:/Screen1.qml")));
qDebug() << app.screens().length();
QScreen* screen1 = app.screens().at(0);
QScreen* screen2 = app.screens().at(1);
view1.setGeometry(0,0,200,200);
view1.setScreen(screen1);
view1.show();
QQuickView view2(QUrl(QStringLiteral("qrc:/Screen2.qml")));
view2.setGeometry(0,0,200,200);
view2.setScreen(screen2);
view2.show();
return app.exec();
}
调试输出为:2
此代码将两个视图放在同一显示输出上,尽管qDebug
输出提供了正确名称的正确显示输出数。
答案 0 :(得分:5)
你的错误是错误的几何。在这两行代码中,您将两个窗口放在相同位置:
view1.setGeometry(0,0,200,200);
view2.setGeometry(0,0,200,200);
而不是这个,您可以设置位置(不确定您是否还需要尺寸):
view1.setGeometry(screen1->geometry().x(),screen1->geometry().y(),200,200);
view2.setGeometry(screen2->geometry().x(),screen2->geometry().y(),200,200);
要更改位置而不是更改位置和大小,您可以使用函数move
。
P.S。我通过记忆编写这段代码时可能会有一些小错字,但主要的想法应该是适合你的。
答案 1 :(得分:0)
我建议你看看this question和this answer on another question。另请参阅QDesktopWidget的文档。希望有所帮助!