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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
6 P  G; U! M! Z, v  w' m本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。
6 z% @7 k2 q6 @/ _5 c, ^9 v% p9 e例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。2 m+ Y3 p. e+ F. N, x" F
在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:* z/ |  D' Y4 F0 L0 a$ w! M
int main(int argc, char *argv[])
7 q& `' m0 F$ }! |0 G6 f& X{! B; O! G7 i. S( L! A6 T+ X- z
QApplication a(argc, argv);
8 f; v1 X9 r4 |7 A" X" g1 D/ xRotate w;//主窗口% B3 N, M2 x: R/ b1 W
/*
& T4 E( a- m& E# z  B* 旋转主窗口" g% s5 c' ?2 J6 \
*/
/ s; s3 _5 V1 o) ~QGraphicsScene *scene = new QGraphicsScene;
& b: }) q: ^0 O/ H! gQGraphicsProxyWidget *gpw = scene->addWidget(&w);( s6 q3 b# N( W
gpw->setRotation(90);//旋转 90 度
- I/ ]. l7 j3 D3 m4 L/ pQGraphicsView *view = new QGraphicsView(scene);7 d  U. r) F9 a% [1 k6 O
view->showFullScreen();//全屏显示
5 c) ~" z: {+ v$ @return a.exec();. C, i, s2 w9 K7 V0 C' B
}- ?2 E* B8 }" s% ?- i
添加完后如图 94.1:: F' M2 v/ S4 a( c9 s0 r" z' j- j

0 L/ [6 }4 e5 P3 N* W# d8 R: ]& a- K子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如下:( u! Y$ ~# ?3 g4 I" y
void Rotate::showOpenFile()
1 f8 F. G2 K. S4 e6 ~{
) N4 G9 q  C1 Z2 v% L2 ygf = new getfile(this);//子窗口调用 scene& z& W6 {8 a2 i* V. f" c- y
gf->show();
! _; K+ i! I0 Y( ]5 ~connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号/ V. y& D/ v$ Z" ?
}  \+ u$ w$ _: H, h4 B
完成后如图 94.2:1 B, _4 j9 `9 v. ^9 p

7 d; y  D$ `( S4 B8 b主窗口效果如图 94.3:
% X# y6 h' H# X8 }* j7 }" G% y" U- w% P6 Z- d% u
点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,* z4 g* x: ]! a' N+ `- d# N

) M( n1 E7 T# e2 ^* W显示出文件内容:' L4 N- V5 ^$ n4 i4 r

- R5 U0 G- X8 I" e+ d0 p在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到Scene 中,才能达到旋转的效果。
5 C$ M' x5 u# w9 y7 i/ y; E" q8 k: H* h/ ^: n8 R0 @) u

1 o7 f1 F( T9 }) S+ d
& Q' I% }0 Z) b, s# H$ k' M7 u2 U- W4 t' M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 22:09 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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