系统交互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
- Designer中,创建一个QGraphicsView小部件(“Graphics View”类别下的“Display Widgets”)。
- 用鼠标右键单击QGraphicsView并选择““Promote To…”。
- 在“Promoted calss name”下,输入您希望使用的类名称(“PlotWidget”,“GraphicsLayoutWidget”等)。
- 在“Header file”下,输入“pyqtgraph”。
- 点击“Add”,然后点击“Promote”。
我的理解:qt所有组件都继承于Qwidget,promote更改了继承关系,使之继承于pyqtgraph的PlotWidget。这种方法可以应用于自己写的组件,这样就可以在designer中同一设计布局,而不用关心每个组件自己的布局。
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)