找回密码
 注册
关于网站域名变更的通知
查看: 282|回复: 1
打印 上一主题 下一主题

迅为iTOP-iMX6ULL开发板-Qt窗口旋转

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-19 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
0 z( Z. o9 C, T/ C' ?' k本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。  V; N# M' @4 @" T6 C, f
例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。/ W2 `* o9 L- j% V
在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:
! Y5 c( N& o) Cint main(int argc, char *argv[]): f# x, t8 J% S. _# f/ h) q
{
. e" T& _% `3 _7 _% n" X1 o, oQApplication a(argc, argv);
' I/ h0 f9 \. W0 j! S6 m3 pRotate w;//主窗口
" ^2 M, ]0 y/ Z/ w8 S1 W/*
5 Y# G, H9 d$ O* V6 Q* 旋转主窗口; H0 ~8 ^* {( @6 \
*/
3 X/ u# e; k: X) Z0 C& bQGraphicsScene *scene = new QGraphicsScene;  r0 B4 a* ]" X: a# u
QGraphicsProxyWidget *gpw = scene->addWidget(&w);
7 O! s% q( ?5 }; ~gpw->setRotation(90);//旋转 90 度% t2 R3 C5 J! g
QGraphicsView *view = new QGraphicsView(scene);4 x7 M% {! S- n# Q3 m4 m- l
view->showFullScreen();//全屏显示: C) g4 y3 ?# U' b
return a.exec();
5 M. I* v) @: t) |- l9 Z}/ o* n! U( F1 ~1 e( R- C3 b
添加完后如图 94.1:
9 J6 ?. i. ?1 q6 X  b. Y, L
8 j" p% V& T, N* @( I子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如下:
+ V' s2 u) W" Dvoid Rotate::showOpenFile()
0 l7 f. h" [7 d- R{1 G+ q. S, P1 j- C* }
gf = new getfile(this);//子窗口调用 scene
! [$ _# F1 Z. r/ fgf->show();# D1 w1 Y$ {8 o; Y+ g* d
connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号! d5 ^5 ~+ u9 k( ]4 T
}4 T3 u2 J* l! c$ a3 {$ t
完成后如图 94.2:
9 {2 D' C% A# X, I, j- M  I3 I+ ~8 V
主窗口效果如图 94.3:9 \4 E5 q# ]. M; A2 u
) v, b/ t8 I8 z! D' i
点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,
! w' y1 |0 O7 \8 P$ |; c& t# }% F6 h. y8 `* ?* Y6 C
显示出文件内容:9 a5 Q* P! ^9 E+ G9 o# g7 C! i( w

, X; t' {3 N1 y  r8 {, r2 E在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到Scene 中,才能达到旋转的效果。0 S. N+ L/ ?8 R' J% a
/ f5 K! @; j6 a( o
3 Q/ q8 O! X2 X. S
) e9 i0 i! Q; }$ S( B2 v
& a/ Y9 A8 v" v: q( n4 @, I$ p5 y" e
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 23:34 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表