如何在Pycharm中运用PyQT5创建Windows窗体

如何在Pycharm中运用PyQT5创建Windows窗体,第1张

我们在Pycharm中可以运用PyQt5创建很多的Windows功能,那么如何创建Windows窗体呢?下面我给大家分享一下。

工具/材料

Pycharm

01

首先点击桌面左下角的开始菜单,在d出的界面中选择cmd.exe选项,如下图所示

02

接下来在d出的界面中输入pip install pyqt5命令进行pyqt5的安装,如下图所示

03

然后我们打开Pycharm软件,新建一个PyQT5的项目,如下图所示

04

接下来在GUITuts文件夹下面新建一个py文件,如下图所示,文件名称大家可以随便起,不要用中文

05

然后打开py文件,用import关键字导入PyQT5所需要的包,如下图所示

06

接下来声明一个窗体对象,同时定义窗体的名称和宽高的属性值,如下图所示

07

然后就需要对窗体进行初始化,初始化的时候主要是运用setWindowTitle和setGeometry两个方法设置

08

最后运行程序以后我们就可以看到如下图所示的窗体了,如果还需要在里面加内容就继续往窗体里塞即可

通过实现任意两个经纬度计算两点之间的距离为例子

程序生成截图:

#以下是GUI图形界面的创建

from PyQt5import QtCore, QtGui, QtWidgets

from mathimport *

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(800, 599)

self.centralwidget = QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.label_2 = QtWidgets.QLabel(self.centralwidget)

self.label_2.setGeometry(QtCore.QRect(70, 90, 41, 16))

self.label_2.setObjectName("label_2")

self.label_5 = QtWidgets.QLabel(self.centralwidget)

self.label_5.setGeometry(QtCore.QRect(70, 150, 41, 9))

self.label_5.setObjectName("label_5")

self.label_6 = QtWidgets.QLabel(self.centralwidget)

self.label_6.setGeometry(QtCore.QRect(50, 230, 41, 9))

self.label_6.setObjectName("label_6")

self.label_3 = QtWidgets.QLabel(self.centralwidget)

self.label_3.setGeometry(QtCore.QRect(270, 90, 41, 16))

self.label_3.setObjectName("label_3")

self.label_7 = QtWidgets.QLabel(self.centralwidget)

self.label_7.setGeometry(QtCore.QRect(270, 150, 41, 9))

self.label_7.setObjectName("label_7")

self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)

self.lineEdit.setGeometry(QtCore.QRect(50, 110, 71, 31))

self.lineEdit.setObjectName("lineEdit")

self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)

self.lineEdit_2.setGeometry(QtCore.QRect(50, 170, 71, 31))

self.lineEdit_2.setObjectName("lineEdit_2")

self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)

self.lineEdit_3.setGeometry(QtCore.QRect(250, 110, 71, 31))

self.lineEdit_3.setObjectName("lineEdit_3")

self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)

self.lineEdit_4.setGeometry(QtCore.QRect(250, 170, 71, 31))

self.lineEdit_4.setObjectName("lineEdit_4")

self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)

self.lineEdit_5.setGeometry(QtCore.QRect(80, 220, 71, 31))

self.lineEdit_5.setObjectName("lineEdit_5")

self.pushButton = QtWidgets.QPushButton(self.centralwidget)

self.pushButton.setGeometry(QtCore.QRect(170, 300, 56, 17))

self.pushButton.setObjectName("pushButton")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar = QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 18))

self.menubar.setObjectName("menubar")

MainWindow.setMenuBar(self.menubar)

self.statusbar = QtWidgets.QStatusBar(MainWindow)

self.statusbar.setObjectName("statusbar")

MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)

self.pushButton.clicked.connect(self.btnshanbing_click)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):

_translate = QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

self.label_2.setText(_translate("MainWindow", "经度"))

self.label_5.setText(_translate("MainWindow", "经度"))

self.label_6.setText(_translate("MainWindow", "距离"))

self.label_3.setText(_translate("MainWindow", "经度"))

self.label_7.setText(_translate("MainWindow", "经度"))

self.pushButton.setText(_translate("MainWindow", "确定"))

#以下是btnshanbing_click信号的槽函数

def btnshanbing_click(self):

#以下是将文本框里面的内容读取出来同时将里面的类型转换为浮点型

a=float(self.lineEdit.text())

c=float(self.lineEdit_2.text())

b=float(self.lineEdit_3.text())

d=float(self.lineEdit_4.text())

#以下是经纬度计算公式

e=(acos(sin(b * pi /180) * sin(d * pi /180) + cos(c * pi /180 - a * pi /180) * cos(b * pi /180) * cos(d * pi /180)))*6371004

#以下是将计算的结果生成在LineEdit_5里面去,但是要注意的是必须将计算的结果转换为字符型,否则程序运行不起来

       self.lineEdit_5.setText(str(e))

主程序:

self.lineEdit.text():读取文本框里面的内容,但是要做计算必须转换为float(self.lineEdit.text())浮点型才能做运算,否则不能运算

self.lineEdit_5.setText(str()):将计算的结果生成在另一个文本框里面必须转换为字符型,否则程序会报错。

综上所述:lineEdit.text()的返回类型为文本型

使用Qt进行软件开发,不可避免要使用资源文件。本节我们做一个简单示例,通过使用Qt资源文件为应用程序及关闭按钮设置图标。

根据前面我们所讲述的内容,先创建PyCharm工程项目,然后创建Qt工程项目,在Qt工程项目中设计界面并创建资源文件。

界面中我们只放置一个“关闭”按钮,所以在此不做具体的描述。下面,我们创建资源文件。

在Qt Creator中选择“File” ->"New File or Project...",然后选择“Qt”->"Qt Resource File",在File name中输入res,在项目中可以看到,我们创建了一个res.qrc资源文件。

在资源文件上右击,选择”Open in Editor“即可打开资源文件编辑器。

在资源文件中首先需要创建一个前缀,名称可以根据具体的资源进行命名,我们在此处命名为:icons;然后单击”Add Files“,选择事先准备好的图标文件添加进来。

在按钮的属性编辑器中找到icon属性,点击下拉菜单中的”Choose Resource...“,在对话框中选择对应的资源文件中的图标即可。

编译资源文件:

在PyCharm的工程项目中创建一个名为rcc.bat的批处理文件,其代码如下:

注意:编译资源文件时,生成的py文件名结尾必须是_rc,因为编译窗体文件后会产生如下语句:

编译窗体文件:

在PyCharm的工程项目中创建一个名为uic.bat的批处理文件,其代码如下:

运行以上两个批处理文件,可以看到编译后的py文件已经生成。

执行程序后可以看到,界面中的关闭按钮显示了我们在Qt Creator中设置的图标。

引入图标类:

在主程序中app = QApplication(sys.argv)语句后面增加设置图标的代码:

为”关闭“按钮添加单击事件代码:

运行程序即可看到应用程序的图标也可以显示了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11169970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存