赞
踩
目录
from PyQt6 import QtWidgets。报错ImportError: DLL load failed: 找不到指定的程序
注意:pyqt6-tools目前仅支持python3.9版本,3.9版本后的安装部成功。(截止2022.11.20)
安装pyqt和pyqt6-tools可以使用conda和pip进行安装
(1)首先创建python环境
- #利用conda,创建python环境
- conda create --name pyqt_env python=3.9
命令如下:
(2)激活pyqt_env环境
- #激活pyqt_env环境
- conda activate pyqt_env
(3)安装pyqt6和pyqt6-tools,建议使用pip
pip install pyqt6
当看到successfully是表示安装成功。
在安装成功pyqt6后,安装pyqt6-tools
pip install pyqt6-tools
当看到successfully表示成功,出现红色的部分表示有部分包没有安装成功。
检验上述两个是否安装成功,可以使用 pip show <包名>的情况来查看
- #例如
- pip show pyqt6-tools
出现以下信息,也表明安装成功了。
注意:在安装过程中,会遇到包下载不了的情况,我们可以使用国内的镜像地址来下载。
#可以使用临时镜像对python包进行下载 pip install pyqt6-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
镜像地址有很多,除了清华的地址,还有:
清华大学(推荐) Simple Indexhttps://pypi.tuna.tsinghua.edu.cn/simple/ |
中国科学技术大学 Simple Indexhttp://pypi.mirrors.ustc.edu.cn/simple/ |
…… |
在本例的配置中,选择用pycharm的社区版本,2022.2.4版本,最新的pycharm采用了新界面的风格,更轻量化,功能布局更为合理。
pyqt开发为我们在python环境中开发提供了可视化界面的编程,配置designer.exe可以方便的进行界面设计和开发。
(1)打开pycharm软件,并新建项目。
pycharm新界面较为简洁
(2)打开设置界面(快捷键Ctrl+Alt+S)
打开设置界面,找到Extenal Tools工具
接下来根据设置界面添加designer.exe文件
修改 Working directory 目录
Working directory 为 $ProjectFileDir$ 对应当前目录
pyuic工具可以将QtDesigner生成的.ui文件转换为.py文件,相当于通过界面可视化界面设计后,直接将界面文件转化为python代码,这样就极大的提高了代码的编写效率。
紧接上一步骤,点击‘+’号添加pyUIC工具
参数填写
Arguments | $FileName$ -o $FileNameWithoutExtension$.py |
Working directory | $ProjectFileDir$ |
注意:Working directory目录也可以自定义设置
到这里pycharm的配置已经完成。
可以利用配置好的环境进行简单的界面开发。
通过tools--pyqt6--pyqtDesigner可以打开界面设计界面
界面设计可视化界面
选择main window,然后添加一个label,键入“hello world”。
然后保存界面文件为.ui文件,将ui文件保存到和主程序代码相同的路径下。
接下来将.ui文件转化为.py文件,这是可以利用pyUIC工具进行转化
点击pyUIC命令后,程序会将工程内的.ui文件自动转化为.py文件。
UItest.py代码如下,请记住class的名称为Ui_MainWindow
- # Form implementation generated from reading ui file 'UItest.ui'
- #
- # Created by: PyQt6 UI code generator 6.1.0
- #
- # WARNING: Any manual changes made to this file will be lost when pyuic6 is
- # run again. Do not edit this file unless you know what you are doing.
-
-
- from PyQt6 import QtCore, QtGui, QtWidgets
-
-
- class Ui_MainWindow(object):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(800, 600)
- self.centralwidget = QtWidgets.QWidget(MainWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.label = QtWidgets.QLabel(self.centralwidget)
- self.label.setGeometry(QtCore.QRect(270, 200, 211, 71))
- self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
- self.label.setObjectName("label")
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
- self.menubar.setObjectName("menubar")
- MainWindow.setMenuBar(self.menubar)
- self.statusbar = QtWidgets.QStatusBar(MainWindow)
- self.statusbar.setObjectName("statusbar")
- MainWindow.setStatusBar(self.statusbar)
-
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
-
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
- self.label.setText(_translate("MainWindow", "Hello World"))
此时,产生的是为界面代码并不能直接运行,需要将代码绑定到main函数才能运行。将Ui_MainWindow类的名称绑定到ui关键字,使得ui=Ui_MainWindow().
- import sys
- from PyQt6 import QtGui,QtWidgets
-
- from UItest import Ui_MainWindow
-
- if __name__ == '__main__':
- app=QtWidgets.QApplication(sys.argv)
- MainWindow=QtWidgets.QMainWindow()
- ui=Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec())
运行上述代码可以得到运行的界面。
通过编写代码也可以实现对pyqt界面的设计,具体代码例子如下:
- import sys
- from PyQt6.QtWidgets import (QApplication, QWidget,QLabel,QPushButton)
- from PyQt6.QtCore import QCoreApplication
-
- # 主窗体
- app = QApplication(sys.argv) # 创建应用对象
- mainWindow = QWidget() # 构造登陆窗口
- mainWindow.setWindowTitle('第一个程序') # 窗口标题
- mainWindow.resize(800, 600) # 窗口大小
-
- # 密码Label
- pass_Label = QLabel(mainWindow) # 放置在登陆窗口上
- pass_Label.setText('你好,世界!!!') # 设置显示文本
- pass_Label.move(350, 280) # 设置位置
-
- # 退出按钮
- exit_Btn = QPushButton('关闭应用程序', mainWindow)
- exit_Btn.clicked.connect(QCoreApplication.instance().quit) # 绑定退出事件
- exit_Btn.move(350,350)
- mainWindow.show() #显示窗体
- sys.exit(app.exec()) #进入消息循环
程序运行效果如图:
两种方法没有本质的区别,主要是在效率上的区别
由于pyqt6和pyqt6-tools两个包不一样,容易导致如下问题
要解决此问题只需要将pyqt6和pyqt6-tools的版本进行统一就可以了。
具体可以这样操作,首先利用
pip list
命令查看包的安装列表
从上图可以看出pyqt和pyqt6-tools的版本不一致,可以pyqt6-qt6包卸载,重新安装pyqt6-qt6包为6.1.0版本,既可以解决找不到指定程序的错误。
PyCharm中使用PyQt实现UI界面设计 - fengMisaka - 博客园
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程_思绪无限的博客-CSDN博客
【python】PyQt6和pyqt6-tools在PyCharm2021的详细配置方法_特大辉哥的博客-CSDN博客
Python之pip命令指定安装源和版本_慕城南风的博客-CSDN博客
pyqt6 vscode ImportError: DLL load failed while importing QtGui: 找不到指定的程序。_mengyu822_csdn的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。