|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
* f x; G# Y, Y# b: I本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候3 N" L* u6 K' X& d' R: y& U! D
不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,
. c( ?7 E3 ]. f# A- C然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。9 I f( t( O& o# u! ]- x& U1 Z6 S
例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选$ `% R8 q/ [; b- I) M. N# L
择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。
6 I7 f6 M0 S2 E6 n6 [在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类: ^5 b) _5 M6 d5 [" [
int main(int argc, char *argv[])1 i+ U! T5 e( i ]
{
- E! y% X3 f: r5 j; g; D7 T# SQApplication a(argc, argv);! m' I7 D4 A5 I+ [7 x
Rotate w;//主窗口 O8 w2 ?+ k* h9 V. e$ z& L( I; x
/*
; P$ k$ e2 d3 A+ z) r* 旋转主窗口4 v& S* T5 \# `; y2 A( h0 {5 i# [
*/
8 c0 C# T7 w% H5 O1 i6 {/ m( c/ G% [& OQGraphicsScene *scene = new QGraphicsScene;1 R# K1 b3 [* P8 i" C3 E! n9 t8 Y
QGraphicsProxyWidget *gpw = scene->addWidget(&w);
3 N' ~3 g* c) I3 o+ D' z' m9 p" u- igpw->setRotation(90);//旋转 90 度$ _3 y% P/ r3 _
QGraphicsView *view = new QGraphicsView(scene);
8 ^) ?& g. T$ c4 qview->showFullScreen();//全屏显示
/ V0 ?! V* _% B: ?return a.exec();
6 o% h( y3 H1 Q V. q}
: Q1 |* _5 G, O6 R! V1 m2 x添加完后如图 94.1:
; i' k$ Y1 x- V5 t y0 @/ v![]()
3 Z9 U( _+ q& A$ L- p- \8 q. B" v4 @子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如
' S9 a/ k0 L4 u) o下:- u7 @* }6 C- v# S |+ A! V
void Rotate::showOpenFile()
7 `* p `) W" w; K" `% \0 |{$ Y: V1 L1 E( g, V& T* w/ u0 d3 U
gf = new getfile(this);//子窗口调用 scene1 j. I, {( Z9 ?5 l
gf->show();
7 L- _! [! X& E( E0 y. ^connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号" n+ M* {/ D# d' p: U: j
}# A6 L, W3 q' F8 ^
完成后如图 94.2:
( l i) \% B$ | ]2 h2 w' S . _4 t% q" g: N7 h
主窗口效果如图 94.3:! ~' z; H' r% n5 y: a* ?: N1 H
![]()
1 O( |* [2 o+ a9 I) q5 V! ^. u8 N点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,
4 G2 Q h Q* z! |![]()
5 d+ h8 L' ]. w" U4 n显示出文件内容:* m# k$ R0 N5 l
![]()
5 \* w' d" j! U3 I- ~在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到" o! Z$ }9 A- X
Scene 中,才能达到旋转的效果。
" G: W4 p1 e2 N" r5 b8 p" W8 K" k![]()
" e4 p: h1 h. L |
|