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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。4 V: f* V& G* r5 H
本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。0 j' X4 Z4 I) `$ X( N
例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。; a8 c: J& V; p0 }& w) t
在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:& B$ a6 [5 P; ]  O
int main(int argc, char *argv[])
. y; S& F$ n) B# s! C3 Z{8 {' i2 I; U+ c6 b0 v% i# M
QApplication a(argc, argv);+ v2 `% o* X" v) v; g5 F
Rotate w;//主窗口! k, N( s" X, C. h7 N, E% G
/*' b3 G5 a" h* _! W
* 旋转主窗口
1 s3 f1 P1 ]: ~0 D0 ]) x/ B*/( U7 e% s+ j- h0 v: h
QGraphicsScene *scene = new QGraphicsScene;
3 ]6 ?9 c  N5 y2 A: TQGraphicsProxyWidget *gpw = scene->addWidget(&w);
- p6 a  ^, S5 Z( m3 igpw->setRotation(90);//旋转 90 度& ]' K) ^1 L/ k- M' Y" N
QGraphicsView *view = new QGraphicsView(scene);. l" j, {" H( e" R- b7 E# g! {
view->showFullScreen();//全屏显示5 J; R* X5 n" s, f
return a.exec();5 _, A  L3 |% V1 S1 s% A
}
- ]& m4 s0 A( Y) |; {. U  {添加完后如图 94.1:& Y. K' y& X7 z$ p7 ?) Z1 R0 O
  q3 e, }  ?6 \6 N+ h* ^  o) y
子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如下:
7 v3 ?" Q" c* s- W" I% N3 o0 o+ Gvoid Rotate::showOpenFile()
+ t0 M2 X: i& X% n% u9 D6 y{+ c( B5 \$ |# Q5 s
gf = new getfile(this);//子窗口调用 scene4 h2 R% L5 C3 E* _+ {0 `
gf->show();
1 R1 G5 n  S9 kconnect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号
  a" _$ s4 X7 g- s2 U- I}& F  \$ X, U- b
完成后如图 94.2:8 m0 e( a$ {( e2 x) i& Q/ \* ?
- Y. Z/ X9 \5 U$ p, j8 U/ A* j
主窗口效果如图 94.3:) k4 ]( H4 }) q) i

4 e& O/ u/ p; Y$ E点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,
; i# Z" K5 M5 c  M  p" v% O3 n/ z% x; H$ H
显示出文件内容:5 a$ k/ N$ _0 ~4 T) s
% Y; H% X/ _+ a  q' F. s
在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到Scene 中,才能达到旋转的效果。+ L1 U( j- |& }

9 X' _2 Q8 I+ z
3 a3 u/ o1 N0 o  E# ?8 V9 Y" F; i8 S' e) A) H
4 n4 `+ J; T+ L$ I( k1 {9 @6 t' m% d. T: P
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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