QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2045|回复: 0
打印 上一主题 下一主题

Python UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2022-9-15 12:28 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    & f# D* d6 m2 n" iPython UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中. n! Q  L' Z: A5 y
    7 l! H( ]$ b. c8 p$ b

    " _7 ?- Q) b) U( g( _文章目录
    3 v" w+ A  W7 M/ q在Pyside2中嵌入其他ui组件:增加组件到`pages`中,在`develop`分支中开发2 J2 a0 S5 ]7 w6 n' v2 V
    组件1:`jupyter qtconsole`$ g4 b( m( p- f8 o1 A0 K  g- e: M
    组件2:`matplotlib FigureCanvas for qtwidget`
    0 S" U3 V* a1 J& G0 F3 U组件3:`pyqtgraph`7 ~) m+ S# Z: L: y
    在Pyside2中嵌入其他ui组件:增加组件到pages中,在develop分支中开发* K2 b- _3 u0 R# M/ Q4 t3 Q5 E
    以下组件部分测试测试参考:, `0 G. V5 }: j% e+ k9 o( G. D3 q8 |

    ; b* X' D$ m2 h9 ~2 [参考的B站视频
    4 R( y$ K9 s+ m* D, J8 H% U' z  ~qtconsole 官方文档:The Qt Console for Jupyter) P. \0 x1 I' H0 b; p' X+ Y0 k" W5 ~
    组件1:jupyter qtconsole
    7 w, ^  R) X! ]. L' L( n9 Y9 O1、安装 qtconsole 库, 经测试发现,该库目前不支持 pyside6, 所以更改解释器环境到 pyqt5 or pyside24 r( t* m6 L3 t/ M
        pip install qtconsole -i  https://pypi.tuna.tsinghua.edu.cn/simple8 x9 }& W' i7 `& L. y
    10 b/ h8 s* i0 s7 e3 v
    2、尝试启动, Q5 b8 j4 y4 u! l" g0 J
       jupyter qtconsole
    4 H$ p/ s( c. ?5 ^1/ r0 d7 L+ b; n8 {4 j" L
    : q2 e2 ~2 }1 X) e- \+ \- Y

    1 A" r% ]3 a4 G% \' Y- k3、尝试嵌入组件到pyside2 ui中
    # T% t, r; O) H1 m( S3 P% F# N
    $ u$ ^9 F( T: C. Q/ \3.1、复制参考的py代码 consolewidget.py 到 gui.widgets 文件目录下; P) @+ q  j9 z. k# Q0 C" k4 w* K

    # ~' X: g3 b& v6 j" {3.2、在Qt Designer 使用 Widget(基类/父类) promote to ConsoleWidget,并修改对象名称,操作如下图:9 Z% _. S9 n2 E; ?0 Y; r
    # n% U( ?8 U0 y. [  B4 v- m2 y* S7 c
    & j4 ^: v  O3 L
    3.3、ui显示样式修改1: widget 样式表
    ; Z8 N; N9 K4 a
    7 n; G0 G% ?1 z" s# U: a/ J/*设置父类窗体,背景边框等属性*/
      o& ?- N+ H" R/ s% W! }& lQWidget {7 Q% R8 D: `4 g/ `/ ^
            background-color: rgb(33, 35, 45);3 n$ P6 z7 @2 H8 C( G- `
            padding: 8px;
    1 D/ {5 A4 L* }' R8 h& o        border: 2px solid #c3ccdf;
    ' ]8 a: Z0 ?( f! d6 L. b8 _$ Y5 @        color: rgb(255, 255, 255);# y5 J7 ^  p! y0 v5 T; Z( X
            border-radius: 10px;
    ; Z( k; e! N4 K% U( V}
    ) w6 x! s# \. Z8 G* l4 S. X1 D1& H/ V2 S- a* N; m# [0 w
    2
    5 j, k: \& H, M; J3; r( f+ Z4 v6 m1 V1 }1 h' B
    4
    $ N- E! |3 P2 Q5 I' U' l" F5: h* A. v- r2 Q8 Q
    61 q4 t6 ?6 a  p( ^4 G
    7
    : ~3 x2 Q$ ]5 b$ M81 e* Z$ f& I7 N2 p0 @. O
    3.4、ui显示样式修改2:qtconsole启动界面风格指定
    5 H+ H! @  Q& _8 z4 M. B' n) T    self.set_default_style('linux')% Z8 _$ @+ t: D7 t
    1! O  F' C% W4 E: `
    3.5、该窗口的实例化在uic自动生成的代码中
    " L& V, T+ S" Q2 r1 k    self.ConsoleWidget = ConsoleWidget(self.frame_2)5 t" n; S( k. s) C. }  b& U
        self.ConsoleWidget.setObjectName(u"ConsoleWidget")! {$ E$ J( \* h
    17 G) }. E' t, ~* K8 T* [
    2
    * A* K8 H0 }( q* t3.6、运行效果
    ( o; }! O! @3 y# z/ ~, z* N8 ]! v9 q2 j5 M# G& _1 l+ B, G# R9 k( B
    组件2:matplotlib FigureCanvas for qtwidget7 G7 R2 n7 V2 ?. @
    1、安装相关库, 指定清华源
    / n& V9 f% s- }5 W    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple4 r9 K4 D* y0 H" m' k3 _
        pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple' L" Y) K) l* f7 ]8 t
        pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
      q( x: l0 k4 |1! f* e+ z7 u( s! B# T4 N0 v
    2
    . o8 {4 Y* u: {: C1 E  w+ I; a8 \32 b, B0 P5 V5 d6 n1 V
    youtube 参考视频
    , _5 q/ Y, k6 ~0 \% D8 I网站教程
    3 n9 u2 B; [. ]$ v/ Y% Iyoutube 参考视频: 不同主题风格调整方法,导入csv数据显示
    ' n. }, h: L0 l6 F9 }2、 复制 MplWidget.py 文件到 gui/widget 目录下2 @& b: K4 K1 P' @% O
    3、测试 animation, Plotting Live Data in Real-Time; l' y7 t% {' {* O

    8 m* M) S; L2 I3 ]0 N测试方法:plot_live_data()$ i# {, N0 M# S" O; C3 L
    个人理解,animation 应该就是定义了一个与UI同线程的定时器。+ n: T( E8 `& M% A
    组件3:pyqtgraph
    - r5 _2 u: W& g0 g) W& [7 R参考视频1. f; A! K# |; }
    参考视频2et’s Build an Audio Spectrum Analyzer in Python! (pt. 3) Switching to PyQtGraph
    0 `8 n( w' g9 i0 N% t' S, k! x6 o& h1 v2 \) E9 A
    1、安装相关库, 指定清华源
    & o# |' b+ l  I    pip install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple# o- k" k& Q, _0 p4 ]' K7 r/ P
    12 I& e9 X) H) z8 [. Y
    2、在 gui\widgets 目录中增加 pyqtgraph_test.py文件; {* D+ g( r: w* X9 E8 z
    增加 2个按钮(draw, clear) 和 1个pygtgraph窗口控件(PlotWidget) 布局+ N  x* B- o! }
    定义刷新时间,帧率,每隔通道的数据记录最大长度等概念. d" o7 M1 E3 g* d" T
    注意,每个点之间的采样时间实时性不是QTimer能保证的。( X6 F/ C: t' ]. s+ j7 c' ?1 o3 m
    还需要想清楚如何保证准确的采样时间,以及与数据刷新时间间隔之间的关系。(参考已有的scope的习惯)
    5 Q4 g4 j8 U  C% y; q( b使用 QTimer 定时器, 实现动态刷新的功能, 60FPS -> 定时器时间间隔设定为 1000/60ms* |; f0 C. L- w6 L
    调用 self.graphicsView.plot(self.y_vals) 绘图,但注意,重复调用相当于创建多个通道的曲线。如果只想显示一个通道的曲线,有2种方式$ s0 {- C2 l; v
    方式1:在 plot() 方法前,调用 clear() 方法
    / a# E6 f1 [& S方式2:使用 self.graphicsView.plot.setData() 方法刷新数据,对应的数据清除方法也改一下,改成setData([])
    * u+ G  I+ @! l% r3、参考 Audio Spectrum Analyzer 代码,优化多通道显示刷新方式
    # R# ]# i# E( W$ |' _7 w源工程运行前,需要安装的库,pyaudio使用pip安装会失败,使用管理员模式启用conda终端安装( {4 d' v# S! a6 s1 D* e
       pip install opensimplex -i https://pypi.tuna.tsinghua.edu.cn/simple
    ' {" @4 d: r; L0 u' H5 d0 G   conda install pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple: H7 o5 x  u  W* b4 p+ Z
    1
    - d: T2 {3 }8 q, p: t2
    3 K0 M' I8 q& Z- g' E参考 self.traces = {}、set_plotdata() 数据结构和方法,优化多通道显示逻辑1 u3 r1 z. a0 ^: o3 L# y; P& q
    . a9 s3 }3 J. t% h9 d- j
    右键RUN pyqtgraph_test.py,效果如下:, q6 D* C% p& O
    % h! f: [, \0 d1 ~% q+ q
    : W  P( w6 z" b, L( F. ?! O3 \
    文章知识点与官方知识档案匹配,可进一步学习相关知识+ |; v& l$ f1 d
    ————————————————7 Y  o/ R- y/ s, x. r; e
    版权声明:本文为CSDN博主「HUIJIANG123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% E9 N. q3 I) e9 z- k/ _0 P6 k
    原文链接:https://blog.csdn.net/u012928587/article/details/124547230
    7 o9 s" J8 f& j: H5 q2 Q
    8 d9 R- E: k6 \, s
    4 G  O0 ?7 Z- d
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-11-3 12:30 , Processed in 0.427803 second(s), 51 queries .

    回顶部