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

https://www.eda365.com/thread-449237-1-1.html

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
* u6 u9 V5 U" b本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候
( _% W. J( ^1 n; \( }! L不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,8 m" n# G6 O, J$ ^3 h  w
然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。
5 s- R2 Z& ?# ?8 R7 Z例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选0 j( @! o0 s0 \# |. l
择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。
* @& G/ r1 E/ g( N; s在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:
0 C* V. ?; f2 m1 ^int main(int argc, char *argv[])8 s0 N8 U3 T- X1 ^  }6 q
{9 y! D' ~, Y1 _& y- F& \8 R) p: Y
QApplication a(argc, argv);  ?: A- K6 Q- s8 s3 t
Rotate w;//主窗口% v( y& X2 a2 B4 t  b; |
/*  |+ g  X' |. m3 k9 R5 d6 R3 ~* }
* 旋转主窗口
4 b- n1 r5 W+ C$ a! ]+ L+ F*/
  L  C* w( Q& E0 U5 n. GQGraphicsScene *scene = new QGraphicsScene;9 ]" z, I/ v! K* S5 E
QGraphicsProxyWidget *gpw = scene->addWidget(&w);
; m" a* D" p, ~; {5 d5 v5 ]gpw->setRotation(90);//旋转 90 度
) m/ M6 P4 {- o# ?QGraphicsView *view = new QGraphicsView(scene);
+ C% T0 M/ V% p/ p, Q; kview->showFullScreen();//全屏显示
: @* r9 T4 i1 P1 {return a.exec();# n: h- R9 |& r# L
}! u5 ~& k0 s  }/ G- K( `9 `: R
添加完后如图 94.1:7 s% v- b7 y7 g" x) Y* [7 Z* u

% I2 N# j+ _0 D+ y* b子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如
8 V7 T9 _' `0 s5 M' i" B1 Z下:
) |4 e, I* l2 a1 H$ z& Qvoid Rotate::showOpenFile()7 }$ ~5 I1 O) h" Z
{% y9 z% Z% J) H8 D  y5 |1 z0 r
gf = new getfile(this);//子窗口调用 scene7 }! n( Q! b- O+ D7 S
gf->show();
0 o  J5 Z) F; e& o5 {/ e. nconnect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号& @1 B/ ?7 f4 A1 n. r8 E
}
. |4 y+ S  G3 a; I+ \完成后如图 94.2:
' `: L! A  `' W& i1 e' M" O# }& D; B$ _* [& b
主窗口效果如图 94.3:
( A2 _5 s  N- |* Y
7 d: B' G5 ]# _点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,0 e6 F0 L2 q( I# ]0 g; L
) @* l7 `, y9 V9 u5 i  U( @( C
显示出文件内容:; O6 y; W" ~  M; w' z5 |* T

2 }% g: P+ o+ W5 @在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到
0 L; F  X8 x" O8 S/ Q. l. MScene 中,才能达到旋转的效果。1 F) n6 t' Y. f

! g; T. z$ S# {6 Y3 |  O- O; X/ D
  • TA的每日心情
    开心
    2022-11-22 15:53
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-10-9 11:14 | 只看该作者
    很详细,谢谢
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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