python GUI

系统交互GUI pyqt,pyqtgraph
网页html交互 pyecharts

PYQT

下载

pip下载速度很慢,可以用国内的源

pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools  #不需要designer的话这个可以不安装,在Cornata输入designer并敲回车就可以打开qtdesigner了,剩下的自己摸索吧

pycharm配置

下文中的…/是anaconda的安装地址

file->setting->tools->external tools->+

QtDesigner:

对于pyqt组件以及设置可以参考https://blog.csdn.net/LaoYuanPython/article/details/102789582

name: QtDesigner
program: ...\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
workdirectory: \$FileDir$
PyUIC
name: PyUIC
program: ../python.exe
arguments:-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py
workdirectory: \$FileDir$
Pyrcc

资源

name: Pyrcc
program:../Scripts/pyrcc5.exe
Arguments:\$FileName$ -o $FileNameWithoutExtension$_rc.py
workdirctory: \$FileDir$

使用

大体步骤如下 tools->external tools-> QtDesigner 生成布局.ui文件
tools-> external tools -> PyUIC 生成布局.py文件

用QtDesigner设计布局的时候,最后要实现布局自适应窗口大小,需要在组件做完之后在空白处右键,点击—>布局—>垂直布局。

转换成py文件后需要加入东西才能运行成窗口 或者新建文件import必要的包以及下面的内容运行成GUI界面

if __name__ == '__main__':
	app = QtWidgets.QApplication(sys.argv)
    mainwindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(mainwindow)
    mainwindow.show()
    app.exec_()

pyqtgraph

import pyqtgraph as pg
pg.plot(a,b,pen='r') # 用红线画出xy

嵌入qt

参考 https://blog.csdn.net/Eppley/article/details/82999998

  1. Designer中,创建一个QGraphicsView小部件(“Graphics View”类别下的“Display Widgets”)。
  2. 用鼠标右键单击QGraphicsView并选择““Promote To…”。
  3. 在“Promoted calss name”下,输入您希望使用的类名称(“PlotWidget”,“GraphicsLayoutWidget”等)。
  4. 在“Header file”下,输入“pyqtgraph”。
  5. 点击“Add”,然后点击“Promote”。

我的理解:qt所有组件都继承于Qwidget,promote更改了继承关系,使之继承于pyqtgraph的PlotWidget。这种方法可以应用于自己写的组件,这样就可以在designer中同一设计布局,而不用关心每个组件自己的布局。
QT组件层级结构

pyqtgraph的六种画图方法

pg.plot(x,title='')  # 窗口标题

plot = pg.plot(title='') # 窗口标题
plot.plot(a)
plot.plot(b) # 里面两条线

win = pg.GraphicsWindow(title='') # 窗口标题
plot = win.addPLOT(title=title2) # 图形标题
plot.plot(a)

pw = pg.PlotWidget(title='') # 图形标题
pw.plot()

view = pg.GraphicsView()
layout = pg.GraphicsLayout()
view.setCentralItem(layout)
p1 = layout.addPlot(title=t1) # 图形标题
p1.plot(a)

view = pg.GraphicsView()
plot = pg.PlotItem(title='') # 图形标题
plot.plot(a)
view.setCentralWidget(plot)

实例

https://github.com/sxjsgl/stock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值