emmm, 前段时间上课有个小作业,需要制作一个界面用来搭载深度学习模型,由于是python写的tensorflow,所以就用python做个简单的GUI。
这里推荐PyQt5进行界面编写。
关于PyQt的一些坑:
1,由于只是制作一些简单的界面,所以并不推荐使用Qtdesigner以及Qt。原因:首先安装复杂,其次pycharm收费。留学党用个盗版会被查,所以就不冒这个风险了。
2,关于C++,java等界面转python界面,虽然有各种不同种类的类似MFC的拖拽流界面编辑,但转python总会出问题,而对于没有学习过pyqt5或者python GUI的人来说,自己写比调BUG更简单。
3,关于pyqt5封装成.exe文件,如果用的是沙箱例如anaconda之类云云,或者不用沙箱,直接下载安装一个python3的IDLE,windows电脑点图标就能直接运行文件,比封装方便多了,而且更便于演示。mac的话就算封装了也打不开。
下面进入正题:
-
PyQt5 安装
很简单,直接pip3 install pyqt5
如果对版本有要求的话:
pip3 install pyqt5==5.8 等等。
安装成功的话,import PyQt5 不报错,注意大小写。 -
个人推荐sublime,第一个界面程序。
pyqt5 主窗口,直接copy就行了。
// 主界面
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
#* from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(100,100)#可拖拽,界面大小
# mainWindow.setFixedSize(100,100)#不可拖拽,界面大小
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle(_translate("mainWindow", "主界面标题"))
#* mainWindow.setWindowIcon(QIcon('图片.png'))
#* 在主界面标题前面插入图片,需要图片和程序在同一路径。
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
以后所有的操作都是在这个界面上进行添加的,由于没有什么图片,就不弄icon了。
如果需要添加icon,加上带有*的代码就行,在此不做赘述。
- 添加按钮
这段代码,需要多少个按钮,复制粘贴几次就行,注意修改按钮前缀标注。
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(10, 10, 10, 60))
#坐标为 按钮的(X,Y)坐标以及(A,B)按钮宽度和高度。
self.pushButton.setObjectName("界面按钮显示文字")
self.pushButton.setText("按钮")
// 按钮
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
#* from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def Ui(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowM