Python UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中
Python UI设计学习笔记,在学习的UI框架中嵌入其他ui组件:增加组件到主画面的pages中
文章目录
在Pyside2中嵌入其他ui组件:增加组件到`pages`中,在`develop`分支中开发
组件1:`jupyter qtconsole`
组件2:`matplotlib FigureCanvas for qtwidget`
组件3:`pyqtgraph`
在Pyside2中嵌入其他ui组件:增加组件到pages中,在develop分支中开发
以下组件部分测试测试参考:
参考的B站视频
qtconsole 官方文档:The Qt Console for Jupyter
组件1:jupyter qtconsole
1、安装 qtconsole 库, 经测试发现,该库目前不支持 pyside6, 所以更改解释器环境到 pyqt5 or pyside2
pip install qtconsole -i https://pypi.tuna.tsinghua.edu.cn/simple
1
2、尝试启动
jupyter qtconsole
1
3、尝试嵌入组件到pyside2 ui中
3.1、复制参考的py代码 consolewidget.py 到 gui.widgets 文件目录下
3.2、在Qt Designer 使用 Widget(基类/父类) promote to ConsoleWidget,并修改对象名称,操作如下图:
3.3、ui显示样式修改1: widget 样式表
/*设置父类窗体,背景边框等属性*/
QWidget {
background-color: rgb(33, 35, 45);
padding: 8px;
border: 2px solid #c3ccdf;
color: rgb(255, 255, 255);
border-radius: 10px;
}
1
2
3
4
5
6
7
8
3.4、ui显示样式修改2:qtconsole启动界面风格指定
self.set_default_style('linux')
1
3.5、该窗口的实例化在uic自动生成的代码中
self.ConsoleWidget = ConsoleWidget(self.frame_2)
self.ConsoleWidget.setObjectName(u"ConsoleWidget")
1
2
3.6、运行效果
组件2:matplotlib FigureCanvas for qtwidget
1、安装相关库, 指定清华源
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
1
2
3
youtube 参考视频
网站教程
youtube 参考视频: 不同主题风格调整方法,导入csv数据显示
2、 复制 MplWidget.py 文件到 gui/widget 目录下
3、测试 animation, Plotting Live Data in Real-Time
测试方法:plot_live_data()
个人理解,animation 应该就是定义了一个与UI同线程的定时器。
组件3:pyqtgraph
参考视频1
参考视频2:Let’s Build an Audio Spectrum Analyzer in Python! (pt. 3) Switching to PyQtGraph
1、安装相关库, 指定清华源
pip install pyqtgraph -i https://pypi.tuna.tsinghua.edu.cn/simple
1
2、在 gui\widgets 目录中增加 pyqtgraph_test.py文件
增加 2个按钮(draw, clear) 和 1个pygtgraph窗口控件(PlotWidget) 布局
定义刷新时间,帧率,每隔通道的数据记录最大长度等概念
注意,每个点之间的采样时间实时性不是QTimer能保证的。
还需要想清楚如何保证准确的采样时间,以及与数据刷新时间间隔之间的关系。(参考已有的scope的习惯)
使用 QTimer 定时器, 实现动态刷新的功能, 60FPS -> 定时器时间间隔设定为 1000/60ms
调用 self.graphicsView.plot(self.y_vals) 绘图,但注意,重复调用相当于创建多个通道的曲线。如果只想显示一个通道的曲线,有2种方式
方式1:在 plot() 方法前,调用 clear() 方法
方式2:使用 self.graphicsView.plot.setData() 方法刷新数据,对应的数据清除方法也改一下,改成setData([])
3、参考 Audio Spectrum Analyzer 代码,优化多通道显示刷新方式
源工程运行前,需要安装的库,pyaudio使用pip安装会失败,使用管理员模式启用conda终端安装
pip install opensimplex -i https://pypi.tuna.tsinghua.edu.cn/simple
conda install pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
1
2
参考 self.traces = {}、set_plotdata() 数据结构和方法,优化多通道显示逻辑
右键RUN pyqtgraph_test.py,效果如下:
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「HUIJIANG123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012928587/article/details/124547230
页:
[1]