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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本章节使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\94_章节使用资料。
( d# H" S$ `: v% y# e本章节介绍在 yocto Qt5 文件系统中使用程序旋转 Qt 窗口。在嵌入式中有时候需要竖屏显示,有时候不能修改 Qt 源码,那么可以在 Qt 应用程序中将窗口旋转 90 度。方法是将主窗口放入到 QGraphicsScene 中,然后旋转 90 度,通过 QGraphicsView 显示。子窗口通过指针来访问父窗口达到旋转的效果。9 t6 t% W3 B: c4 p- M
例程在文档同一目录下,实现的功能是点击主窗口工具栏的打开文件,然后弹出子窗口选择文件(选择普通文件),选择完点击确认,子窗口关闭,主窗口的 textEdit 组件会显示文件内容。2 V$ o, O/ g; Y7 Z8 {( s
在 main.cpp 中修改主窗口的显示过程,Rotate 为主窗口类:( I# `3 s& r+ f3 W
int main(int argc, char *argv[])
  q3 y. Q6 b5 R1 h6 Z5 K( M8 F{& A; d6 B8 ^. L: G' ?! B6 x
QApplication a(argc, argv);2 z7 V5 x: `+ V# i% B! y
Rotate w;//主窗口
2 R& _2 S/ n7 f2 y/*# ]# @/ [; d8 m# Z/ w( @6 X
* 旋转主窗口
; u; y8 I2 M7 [  Q9 S0 ]) q# K*/3 x# \; b( K% S( @3 G. \; Y
QGraphicsScene *scene = new QGraphicsScene;
/ k, A: M( `& X. ]7 {0 G$ IQGraphicsProxyWidget *gpw = scene->addWidget(&w);4 |9 ^$ U5 Z0 o3 @' C# s# ]
gpw->setRotation(90);//旋转 90 度
; ]5 m# h  G; _3 ?: A6 o6 g: |5 mQGraphicsView *view = new QGraphicsView(scene);
/ K& z/ [- V3 ?+ P# {8 {4 Dview->showFullScreen();//全屏显示( `+ h# b+ n3 {& T, s& P" a
return a.exec();
$ O# I: H& {' M; ?4 W# a}" d! g: h$ w- A6 }  M7 E' Y, t9 d
添加完后如图 94.1:
7 S& B  s' Z- e/ {4 j* q0 ]0 r+ p# L' s8 ~
子窗口通过“this”指针指定父窗口将所有项目界面加载到 QGraphicsScene,创建子窗口对象时代码如下:3 X' K* }; C; V7 h: V1 y
void Rotate::showOpenFile()
" O5 d' @2 V+ G3 P0 c7 e{& _: `, m! h) w# `  [
gf = new getfile(this);//子窗口调用 scene
& t  r, C) [9 Kgf->show();8 [2 q- r* v& @. a+ j: j) j
connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口发送过来的信号
8 ]2 X6 Q1 M# m# y6 N! ?}0 v) R/ P! v% e( r
完成后如图 94.2:0 s( d6 ]5 V1 U7 G5 i

/ A/ ?3 A/ b! a7 d, O主窗口效果如图 94.3:( K8 r) x4 `$ R- Z' m
+ K& C! u' a8 B/ F; m
点击工具栏的打开文件,弹出子窗口,在子窗口中选择文件名,& C1 y3 W3 q. p- g3 k+ J4 ~5 Z
% h6 k& ~% [! b) V
显示出文件内容:8 E. [' K+ o$ H: v

* N! y# ^" A$ e' y. o  v7 u8 U在开发板上运行时要根据屏幕大小来调整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到Scene 中,才能达到旋转的效果。
2 H: i8 M+ {# N% g
5 i5 l5 j3 ~! @! Q
! b. Y( E3 n$ B5 P9 r; @0 a
* A3 ]  B5 n# S2 g8 ]
. B9 Y& M* _) U* G' v- @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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