首页 > 其他分享 >PyQt5入门

PyQt5入门

时间:2023-05-11 20:47:43浏览次数:31  
标签:入门 AddTool self PyQt5 label gridLayout QtWidgets QtCore

要使用pyqt5需要先导入对应的包

pip install PyQt5

pip install PyQt5-tools

然后编写我们的第一个程序

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyQt初体验")
        self.resize(600,700)
        self.setip_ui()

    def setip_ui(self):
        label=QLabel(self)
        label.resize(100,100)
        label.setText("欢迎使用PyQt")
        label.move(250,200)

if __name__ == '__main__':
    app=QApplication(sys.argv)
    window=MyWindow()
    window.show()
    sys.exit(app.exec_())

接下来用pyqt5写了一个简单的加法计算器

from PyQt5 import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import  *
from pyqt5.UI.Add import *
import sys
class MainWindow(Ui_AddTool,QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.retranslateUi(self)
if __name__ == '__main__':
    app=QApplication(sys.argv)
    window=MainWindow()
    window.show()
    sys.exit(app.exec_())
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_AddTool(object):
    def setupUi(self, AddTool):
        AddTool.setObjectName("AddTool")
        AddTool.resize(1297, 838)
        self.centralwidget = QtWidgets.QWidget(AddTool)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout.setObjectName("gridLayout")
        spacerItem = QtWidgets.QSpacerItem(236, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem, 0, 1, 1, 1)
        self.Rnum = QtWidgets.QLineEdit(self.groupBox)
        self.Rnum.setMinimumSize(QtCore.QSize(50, 20))
        self.Rnum.setMaximumSize(QtCore.QSize(300, 50))
        self.Rnum.setObjectName("Rnum")
        self.gridLayout.addWidget(self.Rnum, 0, 4, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setMinimumSize(QtCore.QSize(80, 50))
        self.label_3.setMaximumSize(QtCore.QSize(100, 80))
        font = QtGui.QFont()
        font.setPointSize(19)
        self.label_3.setFont(font)
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 0, 5, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setMinimumSize(QtCore.QSize(80, 50))
        self.label_2.setMaximumSize(QtCore.QSize(50, 80))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setStyleStrategy(QtGui.QFont.PreferDefault)
        self.label_2.setFont(font)
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 0, 2, 1, 1)
        self.Lnum = QtWidgets.QLineEdit(self.groupBox)
        self.Lnum.setMinimumSize(QtCore.QSize(50, 20))
        self.Lnum.setMaximumSize(QtCore.QSize(300, 50))
        self.Lnum.setObjectName("Lnum")
        self.gridLayout.addWidget(self.Lnum, 0, 0, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(236, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem1, 0, 3, 1, 1)
        self.res = QtWidgets.QLabel(self.groupBox)
        self.res.setMinimumSize(QtCore.QSize(80, 50))
        self.res.setMaximumSize(QtCore.QSize(100, 80))
        self.res.setAlignment(QtCore.Qt.AlignCenter)
        self.res.setObjectName("res")
        self.gridLayout.addWidget(self.res, 0, 6, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem2, 4, 2, 1, 1)
        self.getres = QtWidgets.QPushButton(self.groupBox)
        self.getres.setObjectName("getres")
        self.getres.clicked.connect(self.getaddres)
        self.gridLayout.addWidget(self.getres, 5, 2, 1, 1)
        self.line = QtWidgets.QFrame(self.groupBox)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.gridLayout.addWidget(self.line, 1, 0, 2, 7)
        self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 1)
        AddTool.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(AddTool)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1297, 26))
        self.menubar.setObjectName("menubar")
        AddTool.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(AddTool)
        self.statusbar.setObjectName("statusbar")
        AddTool.setStatusBar(self.statusbar)
        self.retranslateUi(AddTool)
        QtCore.QMetaObject.connectSlotsByName(AddTool)
    def getaddres(self):
        self.res.setText(str(int(self.Lnum.text())+int(self.Rnum.text())))

    def retranslateUi(self, AddTool):
        _translate = QtCore.QCoreApplication.translate
        AddTool.setWindowTitle(_translate("AddTool", "MainWindow"))
        self.groupBox.setTitle(_translate("AddTool", "加法计算器"))
        self.label_3.setText(_translate("AddTool", "="))
        self.label_2.setText(_translate("AddTool", "+"))
        self.res.setText(_translate("AddTool", "答案"))
        self.getres.setText(_translate("AddTool", "计算"))

 

标签:入门,AddTool,self,PyQt5,label,gridLayout,QtWidgets,QtCore
From: https://www.cnblogs.com/liyiyang/p/17392178.html

相关文章

  • 【2023 · CANN训练营第一季】TIK C++算子开发入门笔记​
    【2023·CANN训练营第一季】TIKC++算子开发入门笔记TIKC++介绍TIKC++是一种使用C/C++作为前端语言的算子开发工具,通过四层接口抽象、并行编程范式、孪生调试等技术,极大提高算子开发效率,助力AI开发者低成本完成算子开发和模型调优部署使用TIKC++开发自定义算子的优势:•C/C++原......
  • Spring MVC官方文档学习笔记(一)之Web入门
    注:该章节主要为原创内容,为后续的SpringMVC内容做一个先行铺垫1.Servlet的构建使用(1)选择Maven->webapp来构建一个web应用(2)构建好后,打开pom.xml文件,一要注意打包方式为war包,二导入servlet依赖,如下<!--打war包--><packaging>war</packaging><!--导入servlet依赖......
  • Redis入门
    引用:【redis】redis快速上手_哔哩哔哩_bilibili20分钟快速入门Redis_哔哩哔哩_bilibiliRedis的hash(哈希类型)数据类型与结构和应用场景_redishash结构fieid必须是相同类型_小洪帽i的博客-CSDN博客07.Redis常用类型-String应用_哔哩哔哩_bilibili1.学习站点:TryRedis......
  • kettle从入门到精通 第十八课 kettle Metadata Injection
    1、MetadataInjection类似于java里面的模版,设置通用的模版,通过输入不同的数据,得到不同的结果。本示例演示两个字段拼接成一个新字段。2、设置模版,设置模版时,只需要根据自己的需要拉取一些控件,以及设置控件之间的关系,无需设置控制的具体属性,有个前提用到的控件需要支持元数据注......
  • ASP.NET Core MVC 从入门到精通之文件上传
    随着技术的发展,ASP.NETCoreMVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NETCoreMVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NETCoreMVC系统开发的人员。经过前几篇文章的讲解,初步了解ASP.NETCore......
  • C++入门
    C++是面向过程也面向对象的语言,具有预处理器、预处理器指令和宏、模板、对象、封装、继承、多态的特性。1、C++程序的内存通常如何分配?解答:全局数据区:通常存储全局变量、静态数据和常量代码区:所有类成员函数和非成员函数代码栈区:执行函数时分配的局部变量、函数参数、返回......
  • Java入门
    Java是面向对象的语言。具有面试对象技术、健壮性、多线程、安全性、分布式计算、跨平台、可移植性、动态性、高性能、解释执行、applet等一系列特点。Java实现机制:Java虚拟机垃圾回收代码安全检测Java的体系结构:最下层是移植接口,由配置器和JavaOS组成,然后是虚拟机,其中上......
  • 分布式搜索引擎Elasticsearch基础入门学习
    一、Elasticsearch介绍Elasticsearch介绍Elasticsearh是elastic.co公司开发的分布式搜索引擎。Elasticsearch(简称ES)是一个开源的分布式、高度可扩展的全文搜索和分析引擎。它能够快速、近乎实时的存储、搜索和分析大量数据。适用于包括文本、数字、地理空间、结构化和非结......
  • 课本_第二章、arcpy开发入门
     八股文--判断文件是否存在1result=ap.Exists(文件路径)#返回布尔值2printresult八股文--获取.shp文件中矢量要素数量(属性表的行数)参考连接:Result—ArcMap|文档(arcgis.com)1count=ap.GetCount_management(图层名称)2#此处的count是使用地理处理工具......
  • 高效c语言1快速入门
    本章将开发你的第一个C语言程序:传统的"Hello,world!"程序。然后讨论一些编辑器和编译器的选项,并阐述移植性问题。Hello,world!#include<stdio.h>#include<stdlib.h>intmain(void){puts("Hello,world!");returnEXIT_SUCCESS;}在Linux和其他类似Unix的操作系统......