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