QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2354|回复: 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
    & E7 M' E4 a+ w; Z
    Python UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中4 z. I; p7 E2 t7 Y" S- t* k
    ; W% w' m! g, G7 F. Z' `
    : `; }3 k' W( ^) m  g: x
    文章目录# \$ _- u; B! e: V3 P, H+ |, _
    在Pyside2中嵌入其他ui组件:增加组件到`pages`中,在`develop`分支中开发
    2 n. o9 i2 i# q9 \; d( y. a/ V组件1:`jupyter qtconsole`- o, u1 I1 u2 y
    组件2:`matplotlib FigureCanvas for qtwidget`' Z) N: L1 [( g$ g/ [
    组件3:`pyqtgraph`
    # v2 O& S7 U+ N3 [* M& h1 F! P在Pyside2中嵌入其他ui组件:增加组件到pages中,在develop分支中开发! b$ H1 P" b( i! R
    以下组件部分测试测试参考:
    & t  N; w/ W& z6 k# S/ H/ h+ h, m3 J7 a/ C' \7 N2 {
    参考的B站视频5 \% H3 c7 ?: P" v. h) }
    qtconsole 官方文档:The Qt Console for Jupyter
    ; K8 z3 w) b3 R- j3 R0 i3 U, m组件1:jupyter qtconsole
    3 m3 l% Q) ~0 N3 C1、安装 qtconsole 库, 经测试发现,该库目前不支持 pyside6, 所以更改解释器环境到 pyqt5 or pyside2
    , Q. Z  e# A$ G. s    pip install qtconsole -i  https://pypi.tuna.tsinghua.edu.cn/simple  ]4 X$ D# \4 {: |3 J! c9 i
    1
    # ]8 x$ V2 x, M8 T$ s! E- A2、尝试启动
    6 }' i$ g! V! y( E' z" N8 n( q: b   jupyter qtconsole
    . ?$ }3 x: r* n- n1& M$ V# i2 ?# [% H- }* Q* j

    8 Z5 W" j) Q8 K$ z, R8 X
    / h7 E; m4 ~5 _4 s4 D: i3、尝试嵌入组件到pyside2 ui中. D, @0 y+ T. f7 ^% R# @
    . _3 P6 m) s# j6 O4 y
    3.1、复制参考的py代码 consolewidget.py 到 gui.widgets 文件目录下( d" d! V% l, U. E

    / h- `5 `7 B, J! m3.2、在Qt Designer 使用 Widget(基类/父类) promote to ConsoleWidget,并修改对象名称,操作如下图:4 q; H' z8 C; K9 |3 J) }1 E; E$ X

    ) ^4 c: p$ k& x& W9 Y. v( q" g& ^9 {# C) G( {8 o/ m
    3.3、ui显示样式修改1: widget 样式表
    , R, F5 M4 k% l
    1 }# M. g! B6 ?' E6 V8 G6 m/*设置父类窗体,背景边框等属性*/. x0 Q# `0 W. R; K( P
    QWidget {
    # P0 T( H+ ~0 N; |2 m1 N        background-color: rgb(33, 35, 45);
    6 C3 O5 y* p. O( d2 g        padding: 8px;
    5 p6 |$ t, o( h3 E" n( b9 a1 o        border: 2px solid #c3ccdf;+ P1 x" L* `  r
            color: rgb(255, 255, 255);1 c' h& N8 O$ c6 i4 E5 J
            border-radius: 10px;
    , Q5 [( x4 W( Q2 s}$ ^, H+ C4 y& w, G6 F# s: \
    1
    . N! \$ Q" e/ @; a2! }/ F$ O' v' I- ^1 @
    3
    $ Q! K$ ~; Z- I% R% C9 I4" S$ U' @3 U$ I9 L6 M
    5
    # }( P; \- ]1 Q# A! p1 w" z- E2 n6 B. J; f6
    9 X; f- I/ ]; R& B7; m% [: O* x; `* z6 [
    8
    3 k+ [5 Z6 s4 u, C/ W3.4、ui显示样式修改2:qtconsole启动界面风格指定
    8 d$ M) ?) Z! ^( K9 A& e4 Q    self.set_default_style('linux')
    7 _: e  n* K3 G8 ~1$ s! U2 l( ~3 W2 q$ Z
    3.5、该窗口的实例化在uic自动生成的代码中
    2 W6 n" f* _/ ~  G/ `0 R    self.ConsoleWidget = ConsoleWidget(self.frame_2)
    & g' l6 L  f! p! ~9 m    self.ConsoleWidget.setObjectName(u"ConsoleWidget"); `! }3 J' {! _9 ?4 Y
    1
    5 w  P# a! R. z  p  `9 `29 M( e. \+ A8 q2 X! g
    3.6、运行效果$ {4 J0 [7 C7 [* ]1 p8 }+ R

    ( v5 ^/ k# ]$ E; R组件2:matplotlib FigureCanvas for qtwidget
    $ x: ~7 a9 f0 S( O1、安装相关库, 指定清华源& [# U6 {* u3 z
        pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
      q- k8 v4 m% s  H    pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
    + m6 i; ]+ Y- k    pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple* [* ^/ _. t/ j& {- Y/ X, q, M$ C2 E
    1
    7 `- c5 F4 y; M" U# G* d2& s) e' D, v( c; h/ i3 @9 {) K) y! \
    3) R; Q" U( y; t9 E: z  t
    youtube 参考视频
    * W# {! z9 Z: s网站教程; J; W; \# G4 r8 I! s  H
    youtube 参考视频: 不同主题风格调整方法,导入csv数据显示( u4 `. U4 a9 A* D: z
    2、 复制 MplWidget.py 文件到 gui/widget 目录下
    ; g# g) S3 K, X! M' C- }6 M3、测试 animation, Plotting Live Data in Real-Time  D: d- s4 _9 V* e
    2 n7 B% a& V) `( _/ Q- {, d
    测试方法:plot_live_data()
    + A# H- ~+ m! o' R2 [* X. p8 i4 q个人理解,animation 应该就是定义了一个与UI同线程的定时器。2 F8 K' q5 I8 B/ W
    组件3:pyqtgraph9 k7 _# k6 \: |4 L
    参考视频1
    7 q9 P7 ^3 @. q5 q7 A- H8 K参考视频2et’s Build an Audio Spectrum Analyzer in Python! (pt. 3) Switching to PyQtGraph
    0 ?* i9 p$ T: u7 t$ ^0 m8 W# L
    1、安装相关库, 指定清华源
    , N' l% L6 n# M. h) K6 o    pip install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple
    2 M( {* S. D" [$ M: J1 x15 Q) ]$ W3 `+ G8 ?- I# \
    2、在 gui\widgets 目录中增加 pyqtgraph_test.py文件) A' X% R/ H7 M; u! q
    增加 2个按钮(draw, clear) 和 1个pygtgraph窗口控件(PlotWidget) 布局8 J; M0 V2 W- T- m% t
    定义刷新时间,帧率,每隔通道的数据记录最大长度等概念
    7 [; c  U- e* P9 ], o注意,每个点之间的采样时间实时性不是QTimer能保证的。0 K9 X8 J% ?& i+ }4 a
    还需要想清楚如何保证准确的采样时间,以及与数据刷新时间间隔之间的关系。(参考已有的scope的习惯)( E) Y2 g& l% D9 V( c% A" e
    使用 QTimer 定时器, 实现动态刷新的功能, 60FPS -> 定时器时间间隔设定为 1000/60ms  C3 L) ]" o# y8 }" w
    调用 self.graphicsView.plot(self.y_vals) 绘图,但注意,重复调用相当于创建多个通道的曲线。如果只想显示一个通道的曲线,有2种方式
      J" K( f$ D) O! `: [  ?方式1:在 plot() 方法前,调用 clear() 方法; I8 v( i. C- j( L( i
    方式2:使用 self.graphicsView.plot.setData() 方法刷新数据,对应的数据清除方法也改一下,改成setData([])
    + X. k0 F  E: N9 @9 e+ v1 G3、参考 Audio Spectrum Analyzer 代码,优化多通道显示刷新方式
      t9 E* Z: M. ^% V源工程运行前,需要安装的库,pyaudio使用pip安装会失败,使用管理员模式启用conda终端安装
    7 n( Q" @1 {( C   pip install opensimplex -i https://pypi.tuna.tsinghua.edu.cn/simple5 j1 z" }: v6 V" W
       conda install pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
    4 \; g& y( B, C1 [( R1' d5 f- C' p: M! \& `* [' r
    2: f) C4 B$ \+ p/ Q) \% r- n
    参考 self.traces = {}、set_plotdata() 数据结构和方法,优化多通道显示逻辑6 A3 V' c- I. S/ Z# O# I7 V! t

    ; K0 j$ _1 T% L. y2 p右键RUN pyqtgraph_test.py,效果如下:
    , g1 M1 E. C' E4 q7 t  V9 O. E, m
    9 l1 Y3 }9 m/ d  W5 ]7 `8 \! d. t. T( t
    文章知识点与官方知识档案匹配,可进一步学习相关知识7 @, V: X& u! K. E/ G1 A5 E
    ————————————————$ R+ j; Q# O5 N/ E
    版权声明:本文为CSDN博主「HUIJIANG123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    3 l& l9 B& U; e* j3 r! C原文链接:https://blog.csdn.net/u012928587/article/details/124547230) b/ i* K5 w( G) y/ ~
    . g  I+ g9 s% h$ g& z* ]7 ]+ l
    4 z3 r. Z$ v( F2 m( P" X
    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, 2026-8-26 14:38 , Processed in 0.364798 second(s), 50 queries .

    回顶部