|
|
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 |
|