其他分享
首页 > 其他分享> > ARM开发板基于QT的双屏显示

ARM开发板基于QT的双屏显示

作者:互联网

ARM开发板基于QT的双屏显示

基于QT的双屏显示,因为公司需要做消费机需要双屏显示,需要用到QT双屏显示,现做一下总结。

如何创建两个界面

首先我是习惯使用ui界面,所以首先创建一个主界面。作为主屏,然后再添加文件–》QT–》设计师界面–》mainwindow,取个名字windows2。

在main.cpp中新建桌面
在这里插入代码片 代码:

  QDesktopWidget * desktop = QApplication::desktop();
    int screen_count = desktop->screenCount();
    qDebug("primary:%d virtual:%s", desktop->primaryScreen(), desktop->isVirtualDesktop()?"true":"false");
    char warning[128], *idx=warning;
    for(int i=0; i<screen_count ;i++ ){
        sprintf(idx, "screen%d w[%d], h[%d] ",i, desktop->screenGeometry(i).width(), desktop->screenGeometry(i).height());
        idx += strlen(idx);
    }
    //sprintf(idx, "total width[%d] , total height[%d] \n", desktop->width(), desktop->height() );
    //QMessageBox::warning(NULL, "screen", warning, QMessageBox::Ok); MainWindow2 w2;
    w2.setWindowTitle("screen 1");
    w2.setGeometry(desktop->screenGeometry(1));
    w2.show();
    MainWindow wnd;
    wnd.setWindowTitle("screen0 ");
    wnd.setGeometry(desktop->screenGeometry(0));
    wnd.show();

好像要先写setGeometry(desktop->screenGeometry(1));
其中1,和0分别代表主屏和副屏幕。如果需要更多屏幕,以此类推再新建ui界面,和 MainWindow wnd;类。但一般底层硬件驱动最多只支持双屏吧。

另外注意,这个先写1和先写0;顺序也会在ARM板子上有影响。一般是按照1,0;如上代码所示,不行你也可以反过来试一下。

其中有些屏幕是自适应的,有些需要调节分辨率。
改一下高宽就行。

win2.setGeometry(desktop->screenGeometry(0).width(), desktop->screenGeometry(0).height()); 

下一讲,讲一下这两个界面的通讯。
随便举个例子。
链接:https://pan.baidu.com/s/1G3d7ZJZPAgKWoQ9L1VraWg
提取码:yiqi
复制这段内容后打开百度网盘手机App,操作更方便哦。

觉得有用的话帮忙点个赞吆。

标签:QT,idx,双屏,desktop,screenGeometry,wnd,开发板
来源: https://blog.csdn.net/lccnice/article/details/112980401