查看完整版本: [-- QT5 屏幕旋转90度 --]

QTCN开发网 -> Qt嵌入式开发 -> QT5 屏幕旋转90度 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

mu_de_yu 2016-06-03 16:08

QT5 屏幕旋转90度

大虾们,关于QT5实现ARM板程式界面旋转90度,您有何高见?

froxy 2016-06-13 09:06
你的可以旋转屏幕了吗?

z609932088 2016-06-13 11:25
如要要是画的的话,到时可以实现,问题是,程序旋转没有什么意义啊,你完全在设计的时候就设计成旋转以后的,如果是要旋转系统的,那你可以查查Windows的api看看

mu_de_yu 2016-08-31 11:18
暂时搁置这个问题了,我的需求是:嵌入式板子的屏本来是长方形的,一般都会横着放,现在要求竖着放,所以画面也要旋转90度,希望有经验的大侠指点一二,小弟不胜感激

mu_de_yu 2017-01-17 12:52
这个问题搁置了好久,今天终于找到了一种解决办法:
主要思路是将所有项目界面加载到QGraphicsScene,再进行旋转操作。直接上代码
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsProxyWidget>
#include "./form.h"
int main(int argc, char *argv[])
{    
    QApplication a(argc, argv);
    Form *form = new Form; //项目主窗口
    QGraphicsScene *scene = new QGraphicsScene;    
    QGraphicsProxyWidget *w = scene->addWidget(form);  
     w->setRotation(90);    
     QGraphicsView *view = new QGraphicsView(scene);    view->resize(810, 610);    view->show();
    return a.exec();
}
效果图如下:





mu_de_yu 2017-01-17 12:57
经测试,移植后也可以用,切换画面流畅度正常,测试代码在这里[attachment=16353]

froxy 2017-01-17 14:49
这种 方法在PC上调试感觉好不友好

mu_de_yu 2017-01-18 08:39
froxy:这种 方法在PC上调试感觉好不友好 (2017-01-17 14:49) 

哈哈,我是为了方便截图,具体调试是要到ARM板上的,做这种效果也是嵌入式需求的

mu_de_yu 2017-01-18 09:18


ARM板运行效果图800*600:[attachment=16356]

disongshu 2017-01-18 09:30
    

mu_de_yu 2017-01-18 10:42
此方法缺点:
若某个窗口与主窗口没有父子关系,这个窗口没有添加到scene里,那么显示这个窗口时就不会同步转屏


kh99827765 2017-02-07 15:18
同样使用的这种方法,现在遇到一个问题是,有多个弹出的窗口,置顶的问题。比如现在有三个窗口同时显示,三个是重叠的,都设置了置顶,点击最顶上的按钮时,点击不住。不知道你遇到没?

shf1986 2017-02-10 15:40
w->setRotation(90);    
就这一句吧,学习了......

mu_de_yu 2017-02-14 09:09
shf1986:w->setRotation(90);    
就这一句吧,学习了...... (2017-02-10 15:40) 


mu_de_yu 2017-02-14 09:26
kh99827765:同样使用的这种方法,现在遇到一个问题是,有多个弹出的窗口,置顶的问题。比如现在有三个窗口同时显示,三个是重叠的,都设置了置顶,点击最顶上的按钮时,点击不住。不知道你遇到没? (2017-02-07 15:18) 

应该是焦点focus停留在其他两个中某个顶层窗口上,没有移出来造成的结果。你在不转屏情况下,试下也是会这样吗?

kh99827765 2017-02-22 11:47
mu_de_yu:应该是焦点focus停留在其他两个中某个顶层窗口上,没有移出来造成的结果。你在不转屏情况下,试下也是会这样吗? (2017-02-14 09:26) 

不转屏的情况下还没有试过,现在移植QT5遇到一个新问题,设置QT_QPA_EGLFS_ROTATION=90 屏幕可以正常的旋转,但是触摸屏不跟着旋转,不知道大侠遇到过这种情况没?

mu_de_yu 2017-02-28 08:46
kh99827765:不转屏的情况下还没有试过,现在移植QT5遇到一个新问题,设置QT_QPA_EGLFS_ROTATION=90 屏幕可以正常的旋转,但是触摸屏不跟着旋转,不知道大侠遇到过这种情况没? (2017-02-22 11:47) 

屏幕旋转,触摸屏不转?什么意思?能拍个照片吗?

hejiang177 2017-08-10 09:22
mu_de_yu:ARM板运行效果图800*600:[图片]
 (2017-01-18 09:18) 

兄弟,你的ARM是用的什么型号的平台呀?QT是什么版本的,正准备入手搞一个产品,由于才接触QT,不知哪个比较好?望回复,谢谢!

dongshui 2017-10-16 16:03
好极了,我正需要

自强不吸 2017-10-16 17:07
hejiang177:兄弟,你的ARM是用的什么型号的平台呀?QT是什么版本的,正准备入手搞一个产品,由于才接触QT,不知哪个比较好?望回复,谢谢! (2017-08-10 09:22) 

看你是什么需求了,性能有高有低

极左狂徒 2018-01-12 21:46
如果是linux平台,把启动脚本改为:
XXX -qws -display Transformed:Rot90

ringsp 2018-05-06 10:49
极左狂徒:如果是linux平台,把启动脚本改为:
XXX -qws -display Transformed:Rot90 (2018-01-12 21:46) 

这是解决屏幕硬件横竖问题最彻底的办法

皇皇者華 2018-08-29 16:40
我旋轉成了。樓主威武

在此基礎上,如何將每个字符左旋 90° 呢?這樣就做出豎排效果了。

koenlee93 2018-11-30 17:19
呵呵这么牛逼我弄到我板子上看看

miaotouyang 2019-04-30 08:10
我的界面有gstreamer实现的视频播放窗口,旋转后其它控件都能旋转显示。但视频窗口却是黑屏。

lanzai 2020-04-09 10:56
miaotouyang:我的界面有gstreamer实现的视频播放窗口,旋转后其它控件都能旋转显示。但视频窗口却是黑屏。 (2019-04-30 08:10) 

我也是,视频不能旋转,郁闷

smartwell 2020-05-15 08:30
现在问题是, 虚拟键盘怎么转????


查看完整版本: [-- QT5 屏幕旋转90度 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled