|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
: [; M& `( ? a( P1 J9 d本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候
! L6 |$ i% }, G( U" [" X7 g不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,
- q. n2 M+ p# T然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。' N+ Q; `3 p* f3 s
例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选
7 j2 K. V0 R* @+ J( P4 V) U; D+ v择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。- w9 k& j. [$ O6 \3 f
在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:% A+ w T7 T1 c/ T
int main(int argc, char *argv[])" q: ?' j+ v" {' P; c) R
{
5 d1 c4 M/ D9 ?2 s1 O# nQApplication a(argc, argv);
0 Z0 N/ z) @: O `, H$ J: y& SRotate w;//主窗口
' i! {% C' L4 q- b. j" W* \, k% c/*
% j/ {$ |3 X4 V( X* 旋转主窗口
! H; h# S+ \9 J*/
% t/ C# {$ u: H3 c1 X+ ~! ]" bQGraphicsScene *scene = new QGraphicsScene;6 U2 q0 B$ E# F) k8 f$ @
QGraphicsProxyWidget *gpw = scene->addWidget(&w);4 ]& d" _8 ^; U$ y; W- K' a* W
gpw->setRotation(90);//旋转 90 度
- u: G4 q/ W" L+ u' r mQGraphicsView *view = new QGraphicsView(scene);
+ g# {9 J: f! i: e. f& Kview->showFullScreen();//全屏显示
! |# u s# v) w6 T% D; B8 ureturn a.exec();
/ U6 ^0 Q4 o$ ]) ]( b7 z}% g4 C0 ~- b2 q' D4 O' W( M6 r- u" p
添加完后如图 94.1:# r0 u( ?$ d: t/ v X4 h/ d! N4 |
![]()
1 z% ]# y l# S+ g' d) K子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如2 R. {6 ]) P8 m8 h4 Z2 F) ]
下:
. C/ A2 Z# M* k8 P2 a: |+ Bvoid Rotate::showOpenFile()+ t& z5 x- U) O' C
{
( i8 H2 n" o: B' xgf = new getfile(this);//子窗口调用 scene
5 ] g3 E7 a) r8 U" G2 ~5 ggf->show();9 r! s* ?' T6 F! P
connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号
v4 ~- h# J6 [. X( i8 z}$ f r5 S* `7 ~, f9 F# @
完成后如图 94.2: k+ [6 p( L; T: t) U# A
![]()
: O/ g0 {$ u( S: U" E! M- f* Z主窗口效果如图 94.3:
' o3 ?3 b q% i h8 P2 c7 P ) e0 f$ g- S3 J0 R' V( R
点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,
; m6 C0 E/ k, R2 y5 n" p![]()
1 b2 W8 `7 L, T显示出文件内容:$ J L1 [3 J! m7 L. L! S1 H
![]()
b7 _$ x, R8 d* E! Z$ Q6 L' @在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到
, L6 K- H/ A6 i7 `% x6 m3 ?Scene 中,才能达到旋转的效果。, v4 S- `) ^! b% x7 y
% f7 M' m( d1 g( M' F
|
|