1 在anaconda prompt中,显示:‘conda’ 不是内部或外部命令,也不是可运行的程序或批处理文件
这严格意义上不算是pyqt5的问题,而是环境变量的问题,但就怕哪一天忘记怎么弄了呢?所以还是记下来吧(笑)
右键我的电脑 --> 属性 --> 高级系统设置 --> 高级 --> 环境变量
找到系统变量中的Path变量,点击编辑。将以下路径加到Path中:
1 2 你自己装在了哪应该清楚\Anaconda3 你自己装在了哪应该清楚\Anaconda3\Scripts
2 Anaconda安装第三方库,显示:PackageNotFoundError: ‘Package missing in current channels’
逐渐远离主题(x
2.1 正常安装第三方库
报错:
1 2 3 PackagesNotFoundError: The following packages are not available from current channels: - pyqt5
2.2 解决方案
1 anaconda search -t conda pyqt5
找到一些库,你想要安装哪个,使用如下命令:
接着它会提示你使用如下命令:
1 conda install --channel 一大串网址
最后等它安装完即可。
3 转化工具:将ui文件转化为py文件
(终于回归正题!)
File --> Settings --> Tools --> External Tools --> 添加
新增pyuic(UI转换工具。以后想要转换,在ui文件中右键选择 External Tools,选择pyuic即可完成转换):
1 2 3 4 Name:pyuic program:pyuic的安装路径 (我的是 D:\ProgramData\Anaconda3\envs\pyqt\Scripts\pyuic5.exe) parameter:$FileName$ -o $FileNameWithoutExtension$.py directory: $FileDir$ (最好设置在自己的工作区文件夹下)
新增pyrcc(资源文件转码):
1 2 3 4 Name:pyrcc program:pyrcc的安装路径 (我的是 D:\ProgramData\Anaconda3\envs\pyqt\Scripts\pyrcc5.exe) parameter:$FileName$ -o $FileNameWithoutExtension$.py directory: $FileDir$
新增Qt Designer(以后就可以在pycharm中打开Qt Designer这个软件了):
1 2 3 4 Name:Qt Designer program:Qt Designer.exe parameter:不填 directory: $FileDir$
4 PyQt5测试代码
从 untitled.ui(我创建了一个QDialog)转化而来的 untitled.py :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Dialog (object ): def setupUi (self, Dialog ): Dialog.setObjectName("Dialog" ) Dialog.resize(400 , 300 ) self .buttonBox = QtWidgets.QDialogButtonBox(Dialog) self .buttonBox.setGeometry(QtCore.QRect(290 , 20 , 81 , 241 )) self .buttonBox.setOrientation(QtCore.Qt.Vertical) self .buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self .buttonBox.setObjectName("buttonBox" ) self .retranslateUi(Dialog) self .buttonBox.accepted.connect(Dialog.slot1) self .buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi (self, Dialog ): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog" , "Dialog" ))
main.py (顺便试一下槽函数是怎么用的):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sysfrom PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication, QDialog)from untitled import *class MyDialog (QDialog, Ui_Dialog): def __init__ (self, parent=None ): super (MyDialog, self ).__init__(parent) self .setupUi(self ) def slot1 (self ): print ("hello" ) if __name__ == '__main__' : app = QApplication(sys.argv) un = MyDialog() un.show() sys.exit(app.exec_())
---EOF---