PyCharm、Python3和PyQt5环境搭建和简单使用

1. PyQt5下载安装

  1. python3环境安装,笔者装的3.6.0,安装时,一定要选择pip,将其安装上。
  2. 执行pip3 install sip,先安装先安装sip
  3. 执行pip3 install PyQt5=5.10,因为python3.6对应的PyQt版本是5.10,安装时一定要保证版本一致,否则运行时候会报错。
  4. 执行pip3 install pyqt5-tools,安装pyqt5-tools。
  5. 具体可参照博客PyQt5安装

2. 配置QtDesigner,PyUIC,Pyqcc

需要配置三样东西,其中QtDesigner用于界面设计,PyUIC用于把ui文件转化成py文件,Pyqcc用于把资源文件qrc转换成py文件。参照博客

3. 实战教程

  1. 先用QtDesigner设计界面
    界面

  2. 使用 PyUIC 将 hello.ui 文件转换为 hello.py , 转换后代码如下

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'hello.ui'
#
# Created by: PyQt5 UI code generator 5.10
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(619, 163)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.splitter = QtWidgets.QSplitter(Form)
        self.splitter.setOrientation(QtCore.Qt.Vertical)
        self.splitter.setObjectName("splitter")
        self.layoutWidget = QtWidgets.QWidget(self.splitter)
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout_2.addWidget(self.pushButton_2)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.layoutWidget)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.horizontalLayout_2.addWidget(self.lineEdit_2)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.layoutWidget_2 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget_2.setObjectName("layoutWidget_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.layoutWidget_2)
        self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget_2)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout_3.addWidget(self.pushButton_3)
        self.progressBar = QtWidgets.QProgressBar(self.layoutWidget_2)
        self.progressBar.setProperty("value", 24)
        self.progressBar.setObjectName("progressBar")
        self.horizontalLayout_3.addWidget(self.progressBar)
        self.layoutWidget_3 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget_3.setObjectName("layoutWidget_3")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.layoutWidget_3)
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.pushButton_4 = QtWidgets.QPushButton(self.layoutWidget_3)
        self.pushButton_4.setObjectName("pushButton_4")
        self.horizontalLayout_4.addWidget(self.pushButton_4)
        spacerItem = QtWidgets.QSpacerItem(238, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem)
        self.verticalLayout_2.addWidget(self.splitter)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "打开影像"))
        self.pushButton_2.setText(_translate("Form", "打开RPC"))
        self.pushButton_3.setText(_translate("Form", "RUN"))
        self.pushButton_4.setText(_translate("Form", "CLSOE"))


  1. 主函数run.py写法
import sys
from hello import Ui_Form
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QFileDialog

class MyWindow(QWidget,Ui_Form):
    def __init__(self):
        super(MyWindow,self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.openMsg1)
        self.pushButton_2.clicked.connect(self.openMsg2)

    def openMsg1(self):
        file_img,ok = QFileDialog.getOpenFileName(self,"open","D:/VMcentosShare/GF1","TIFF (*.tif *.tiff *.img);;ALL FILES(*)")
        self.lineEdit.setText(file_img)

    def openMsg2(self):
        file_rpc,ok = QFileDialog.getOpenFileName(self,"open","D:/VMcentosShare/GF1","RPC (*.rpb *.rpc *.txt);;ALL FILES(*)")
        self.lineEdit_2.setText(file_rpc)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myshow = MyWindow()
    myshow.show()
    sys.exit(app.exec_())
  1. 运行结果如图
    运行结果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值