【问题标题】:Qt Embedded: displaying on two screens using QGraphicsView and QGraphicsWidgetQt Embedded:使用 QGraphicsView 和 QGraphicsWidget 在两个屏幕上显示
【发布时间】:2019-01-09 14:46:26
【问题描述】:

我使用的是嵌入式 QT 4.8。小部件基于 QGraphicsView 和 QGraphicsWidget。需要控制两个显示器。

到目前为止,我能够找到有关如何使用 QDesktopWidget(即 QWidget)控制两个显示器的建议。我认为必须有一种方法可以通过 QGraphicsWidget 使用两个帧缓冲区来控制两个屏幕。

谁能给我一个参考,例如如何使用 QGraphicsView 和 QGraphicsWidget 以及两个帧缓冲区在两个屏幕上绘画?

谢谢, 杜桑·穆德里克。

【问题讨论】:

    标签: qt screen qgraphicsview qgraphicswidget


    【解决方案1】:

    试试这个。我没有 2 个屏幕,所以我无法测试

    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();
    }
    

    查看不相关但相似的问题 Multiple Screens with Qt

    【讨论】:

    • 谢谢。我看到了那个链接。我的 QT 没有 QQuickView。代码库很大,基于 QGraphicsView 和 QGraphicsWidget。我需要一种通过 fb0 或 fb1 显示 QGraphicsScene 或 QGraphicsView 或其矩形的方法。
    • 方法setScreen(screen)也可以在QWindow中找到。我猜你的 QGraphicsView 在 QWindow 或 QDialog 内。尝试在那个http://doc.qt.io/qt-5/qwindow.html#setScreen上调用setScreen
    • QT应用程序使用QGraphicsScene矩形在第一个屏幕上可视化QGraphicsView
       QGraphicsScene* pScene = new QGraphicsScene(); QGraphicsView* pView = new QGraphicsView(pScene); pView->showFullScreen(); QGraphicsWidget 图像被绘制在由 setGeometry 设置的矩形中,使用 QPainter。
    • QWindow * window=pView-&gt;windowHandle() 关联QWindow。然后QScreen* screen1 = app.screens().at(0); window-&gt;setGeometry(0,0,200,200);window-&gt;setScreen(screen1);qt5中引入的QWidget->windowHandle()。您的 QGraphicsView 可能需要是没有父级的顶级小部件。你是在做游戏还是什么?
    • 我使用的是 QT 4.8.7,它没有 windowHandle()。是否可以使用 pScene->setSceneRect() 定义更大的 QGraphicsScene 矩形,第二个屏幕位于右侧,矩形大小为 {screen_1X+screen_2X, max(screen_1Y, screen_2Y)}?为第二个屏幕添加皮肤时,QT 可以使用 screen_1X 偏移量来定位它们吗?
    猜你喜欢
    • 2019-01-25
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    相关资源
    最近更新 更多