- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563327 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174221
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
9 P1 K# |& N6 G3 R( W8 ^( V, IPython UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中
- z3 Z/ Y' c. A- h# @# f
, `$ u7 k$ M8 t) W* u- }# F1 w- P0 S! r/ ~
文章目录
9 Y- }: }' H6 f1 R( s% C在Pyside2中嵌入其他ui组件:增加组件到`pages`中,在`develop`分支中开发
, B3 B5 ?. t4 V, p, z' m4 o组件1:`jupyter qtconsole`
! [+ S+ Z; e' ?2 g组件2:`matplotlib FigureCanvas for qtwidget`
2 @* h) U% X. `/ V* D8 B组件3:`pyqtgraph`$ d6 R) ^3 Y; }9 m( D
在Pyside2中嵌入其他ui组件:增加组件到pages中,在develop分支中开发6 _" V! R2 m* V) a% }
以下组件部分测试测试参考:
% @1 x; |) g9 W+ S% ^7 @' u6 [7 t0 g/ {$ h6 I" l) @% B# w1 x9 w1 e
参考的B站视频
0 H W6 q! x3 K6 T: B; E, |qtconsole 官方文档:The Qt Console for Jupyter
k; _6 G) W7 A& T; k. t. l组件1:jupyter qtconsole
. l0 X8 o* J' C! I1、安装 qtconsole 库, 经测试发现,该库目前不支持 pyside6, 所以更改解释器环境到 pyqt5 or pyside2
0 H; F. X' ~7 ?" F$ ?# x/ w pip install qtconsole -i https://pypi.tuna.tsinghua.edu.cn/simple
, C5 W* P6 v8 q1
! [6 g, I! S' ^" @9 {2、尝试启动
) S; L: e( o& h8 W' G. H' u" ^% P jupyter qtconsole. ~( H e. S% J; n5 z- K3 B8 S
1 `1 [5 K" _! Q0 O, I! i4 o# Q9 P; S
* v- x+ X" d7 ~. _# z
( o% [' ?# @* o. M! m8 @3、尝试嵌入组件到pyside2 ui中# l* {/ d5 X, ~7 I& x H$ B
# K" @/ R; b6 M) E0 O
3.1、复制参考的py代码 consolewidget.py 到 gui.widgets 文件目录下
; n1 ? f2 C+ `3 R4 i, P/ X! B) V
3.2、在Qt Designer 使用 Widget(基类/父类) promote to ConsoleWidget,并修改对象名称,操作如下图:9 ^) a1 D& N0 D. K7 ]8 `
4 X/ a- g, n1 |
8 C9 n: f; t: p* ~. s) r4 {3.3、ui显示样式修改1: widget 样式表* j+ t6 I/ a) ^0 F3 a$ k+ D1 Z
/ K+ A" }" U. ]( ^# S% }; N! T N
/*设置父类窗体,背景边框等属性*/
7 B- U: {5 A7 a# tQWidget {' }2 c+ m/ q. _# b" L# ^( E! ^! \) y* @
background-color: rgb(33, 35, 45);
1 |2 k, _9 w$ {9 z padding: 8px;5 t1 [ u' p; F/ b3 H) H0 c
border: 2px solid #c3ccdf;
- r! w- q, H6 Z color: rgb(255, 255, 255);
7 |; b" @$ j4 i* O. c* G: J4 C border-radius: 10px;8 Z: q0 l4 g$ S/ _9 a
}
* o3 u' \. A1 P9 S1
+ W |8 t* c- B+ I$ f$ U2
, ~! `9 O& [% U. W" k6 h6 `3
4 B. ?; M s& W: ~4 F, g4( w' p" T& I3 L- a3 m4 X
5
+ \1 z& K. T6 o# V- |6
1 ~- ?' _+ X% C2 m7- {, D1 E3 B2 I" ^, [& A
81 j: y1 `8 ?0 x: e
3.4、ui显示样式修改2:qtconsole启动界面风格指定
1 E& g3 w. n( r$ Q7 d self.set_default_style('linux')( l3 m! ? g) m( R9 {6 W# l
1( x* S( j3 e! p1 p9 A! ]
3.5、该窗口的实例化在uic自动生成的代码中) S6 C- {: h' k
self.ConsoleWidget = ConsoleWidget(self.frame_2); J1 y4 Z a( _& {7 x
self.ConsoleWidget.setObjectName(u"ConsoleWidget")' K* d/ d, q1 U+ p
1
9 o7 Q3 I! H! l/ A. {: ]2! W- l( {1 B# t8 S- X0 O
3.6、运行效果
9 Z% o5 b0 m& e; z/ @5 k8 T H ^. Z) d+ Z& ]% G5 r
组件2:matplotlib FigureCanvas for qtwidget+ Z7 C( g, w& u. J0 J- q
1、安装相关库, 指定清华源2 b! w% J, t" Y+ B
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
, q! F8 ~5 C5 [" U+ `/ g$ I pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
* ?8 Z: S/ q3 P pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple$ j, L' O% Y8 M" M) }* s* ?! X; p# e4 J
1
% l* Z; E$ k5 K* `& S- F6 k7 Q2
2 q/ R. f3 c) \" [32 I# s1 E, t# {& i. G) b3 x
youtube 参考视频. R5 F3 \- v/ t# P1 _$ n
网站教程
+ m1 L/ M' ?" C" Vyoutube 参考视频: 不同主题风格调整方法,导入csv数据显示9 s5 c" P5 J0 h7 u
2、 复制 MplWidget.py 文件到 gui/widget 目录下- [8 X$ _4 @* i( A- H8 p
3、测试 animation, Plotting Live Data in Real-Time
, ~ ^2 L x. A$ T$ x8 R, d: {
) g& l; i6 }2 l! ^3 _! Z* ~) m; M7 Z测试方法:plot_live_data()
/ ?2 @5 ^ Z4 q5 m# H% l r! b0 V3 K个人理解,animation 应该就是定义了一个与UI同线程的定时器。, b( O- A. b# q+ w! b
组件3:pyqtgraph6 K7 t; c# B6 E2 ?* h6 |/ `
参考视频1
% t/ l( s3 A& ]2 O5 a E9 |参考视频2 et’s Build an Audio Spectrum Analyzer in Python! (pt. 3) Switching to PyQtGraph/ V! |; A! u9 U! E8 H. V( v. h) l
/ \) F8 S; s0 l6 }1、安装相关库, 指定清华源6 i( m! B6 b2 ?4 g1 F5 E
pip install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple
9 S3 v2 I. E( G; K" k( g1/ b" y1 W: g, q' u4 w
2、在 gui\widgets 目录中增加 pyqtgraph_test.py文件6 O& c5 D- m: [! K
增加 2个按钮(draw, clear) 和 1个pygtgraph窗口控件(PlotWidget) 布局
' k1 M+ [5 A2 T) ]5 q8 R* o3 f定义刷新时间,帧率,每隔通道的数据记录最大长度等概念
8 a& T! }! H4 P/ \' M X注意,每个点之间的采样时间实时性不是QTimer能保证的。0 r& O$ A! R* X- }8 G9 U
还需要想清楚如何保证准确的采样时间,以及与数据刷新时间间隔之间的关系。(参考已有的scope的习惯)* a! V5 T7 C0 ]# B I& r. Y
使用 QTimer 定时器, 实现动态刷新的功能, 60FPS -> 定时器时间间隔设定为 1000/60ms
! r' p7 T& a, R7 k调用 self.graphicsView.plot(self.y_vals) 绘图,但注意,重复调用相当于创建多个通道的曲线。如果只想显示一个通道的曲线,有2种方式
9 M3 G7 s5 _, F/ ]2 \6 A( O$ E方式1:在 plot() 方法前,调用 clear() 方法
( T- J3 a/ Z, v3 O k方式2:使用 self.graphicsView.plot.setData() 方法刷新数据,对应的数据清除方法也改一下,改成setData([])8 F- C5 C/ _1 E! J0 Y% ]
3、参考 Audio Spectrum Analyzer 代码,优化多通道显示刷新方式' I; T1 D/ q* c- s* i
源工程运行前,需要安装的库,pyaudio使用pip安装会失败,使用管理员模式启用conda终端安装5 M) ?4 z' `1 S3 j/ L
pip install opensimplex -i https://pypi.tuna.tsinghua.edu.cn/simple
0 {9 \' Q! Y) T$ n+ \7 X) C* b conda install pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple% \9 m r6 Q5 \2 s4 A
1
* A* Q) t, W- i e' j2
4 W N. c z2 r( p参考 self.traces = {}、set_plotdata() 数据结构和方法,优化多通道显示逻辑
7 x8 \- r! n. d- y! @/ q& c6 u9 O; e* n( h ]# H3 k v* _5 C- b8 c/ a% d
右键RUN pyqtgraph_test.py,效果如下:
1 q; W; ~; p/ [: V; S+ d/ H! W5 w# G. i# R0 o% Q
9 d$ [" [" O2 b文章知识点与官方知识档案匹配,可进一步学习相关知识( t) E: t" }5 J0 ]6 B! [2 ]
————————————————
. i) L* v4 r' g( p; l版权声明:本文为CSDN博主「HUIJIANG123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
" e# y z- }6 A9 p6 ^/ D* G原文链接:https://blog.csdn.net/u012928587/article/details/124547230
( m: P" W* I6 p3 _: D7 j$ l4 x
5 ?! d& Z4 ?/ R; r o
|
zan
|