python 使用PyQt5

python 使用PyQt5

一:安装PyQt5

pip install pyqt5

二:PyQt5简单使用
1:使用PyQt5创建一个简单窗口

import sys
from PyQt5 import QtWidgets
#创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
# Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
app = QtWidgets.QApplication(sys.argv)
#创建一个widget组件基础类
windows = QtWidgets.QWidget()
#设置widget组件的大小(w,h)
windows.resize(500,500)
#设置widget组件的位置(x,y)
windows.move(100,100)
"""
#设置widget组件的位置居中
qr = windows.frameGeometry()
cp = QtWidgets.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
windows.move(qr.topLeft())
"""
#等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
#windows.setGeometry(100,100,500,500)
#show()方法在屏幕上显示出widget组件
windows.show()
#循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
sys.exit(app.exec_())

现象如下:
clipboard.png
2:给创建的窗口添加标题和图标

import sys
from PyQt5 import QtWidgets,QtGui
#创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
# Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
app = QtWidgets.QApplication(sys.argv)
#创建一个widget组件基础类
windows = QtWidgets.QWidget()
#设置widget组件的大小(w,h)
windows.resize(500,500)
#设置widget组件的位置(x,y)
windows.move(100,100)
"""
#设置widget组件的位置居中
qr = windows.frameGeometry()
cp = QtWidgets.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
windows.move(qr.topLeft())
"""
#等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
#windows.setGeometry(100,100,500,500)
#给widget组件设置标题
windows.setWindowTitle('标题')
#给widget组件设置图标
windows.setWindowIcon(QtGui.QIcon('2.png'))
#show()方法在屏幕上显示出widget组件
windows.show()
#循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
sys.exit(app.exec_())

现象如下:
clipboard.png
3:给创建的窗口设置按钮及设置提示语

import sys
from PyQt5 import QtWidgets,QtGui
#创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
# Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
app = QtWidgets.QApplication(sys.argv)
#创建一个widget组件基础类
windows = QtWidgets.QWidget()
#设置widget组件的大小(w,h)
windows.resize(500,500)
#设置widget组件的位置(x,y)
windows.move(100,100)
"""
#设置widget组件的位置居中
qr = windows.frameGeometry()
cp = QtWidgets.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
windows.move(qr.topLeft())
"""
#等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
#windows.setGeometry(100,100,500,500)
#给widget组件设置标题
windows.setWindowTitle('标题')
#给widget组件设置图标
windows.setWindowIcon(QtGui.QIcon('2.png'))
#设置提示语的字体和大小
QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
#给widget组件设置提示语
windows.setToolTip('这是窗口提示')
#设置按钮并给按钮命名
btn = QtWidgets.QPushButton('button',windows)
#给按钮设置位置(x,y,w,h)
btn.setGeometry(200,200,100,50)
#给按钮设置提示语
btn.setToolTip('这是按钮提示')
#设置按钮样式
btn.setStyleSheet("background-color: rgb(164, 185, 255);"
        "border-color: rgb(170, 150, 163);"
        "font: 75 12pt \"Arial Narrow\";"
        "color: rgb(126, 255, 46);")
#点击按钮关闭创建的窗口
btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
#show()方法在屏幕上显示出widget组件
windows.show()
#循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
sys.exit(app.exec_())

现象如下(点击button按钮,窗口关闭):
clipboard.png
4:设置标签(lable)信息

import sys
from PyQt5 import QtWidgets,QtGui,QtCore
#创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
# Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
app = QtWidgets.QApplication(sys.argv)
#创建一个widget组件基础类
windows = QtWidgets.QWidget()
#设置widget组件的大小(w,h)
windows.resize(500,500)
#设置widget组件的位置(x,y)
windows.move(100,100)
"""
#设置widget组件的位置居中
qr = windows.frameGeometry()
cp = QtWidgets.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
windows.move(qr.topLeft())
"""
#等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
#windows.setGeometry(100,100,500,500)
#给widget组件设置标题
windows.setWindowTitle('标题')
#给widget组件设置图标
windows.setWindowIcon(QtGui.QIcon('2.png'))
#设置lable信息
label = QtWidgets.QLabel(windows)
label.setGeometry(QtCore.QRect(100, 10, 100, 60))
label.setText('这是lable信息')
label.setObjectName('label')
#show()方法在屏幕上显示出widget组件
windows.show()
#循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
sys.exit(app.exec_())

现象如下:
clipboard.png
5:配置输入框

import sys
from PyQt5 import QtWidgets,QtGui,QtCore,Qt
#创建一个应用(Application)对象,sys.argv参数是一个来自命令行的参数列表,
# Python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。
app = QtWidgets.QApplication(sys.argv)
#创建一个widget组件基础类
windows = QtWidgets.QWidget()
#设置widget组件的大小(w,h)
windows.resize(500,500)
#设置widget组件的位置(x,y)
windows.move(100,100)
"""
#设置widget组件的位置居中
qr = windows.frameGeometry()
cp = QtWidgets.QDesktopWidget().availableGeometry().center()
qr.moveCenter(cp)
windows.move(qr.topLeft())
"""
#等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h)
#windows.setGeometry(100,100,500,500)
#给widget组件设置标题
windows.setWindowTitle('标题')
#给widget组件设置图标
windows.setWindowIcon(QtGui.QIcon('2.png'))
#设置输入框
textbox = Qt.QLineEdit(windows)
textbox.resize(100,20)
textbox.move(50,50)
#show()方法在屏幕上显示出widget组件
windows.show()
#循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过
sys.exit(app.exec_())

现象如下:
clipboard.png
三:将上述方法总结一下实现了一个简单的功能,如下:
功能为:在输入框中输入值过后,点击按钮就会打印出你输入的值,关闭窗口会有提示

import sys
from PyQt5 import QtWidgets,QtGui,QtCore,Qt
class GUI(QtWidgets.QWidget):
    def __init__(self):
        #初始化————init__
        super().__init__()
        self.initGUI()
    def initGUI(self):
        #设置窗口大小
        self.resize(500,500)
        #设置窗口位置(下面配置的是居于屏幕中间)
        qr = self.frameGeometry()
        cp = QtWidgets.QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())
        #设置窗口标题和图标
        self.setWindowTitle('窗口标题')
        self.setWindowIcon(QtGui.QIcon('2.png'))
        #设置窗口提示
        self.setToolTip('窗口提示')
        #设置label信息
        self.label = QtWidgets.QLabel(self)
        self.label.setGeometry(QtCore.QRect(100, 10, 100, 60))
        self.label.setText('这是lable信息')
        self.label.setObjectName('label')
        # 设置label提示
        self.label.setToolTip('label提示')
        #设置输入框
        self.textbox = Qt.QLineEdit(self)
        self.textbox.resize(100, 20)
        self.textbox.move(100, 50)
        # 设置输入框提示
        self.textbox.setToolTip('输入框提示')
        #设置按钮
        self.btn =QtWidgets.QPushButton('按钮',self)
        self.btn.resize(100,20)
        self.btn.move(200,50)
        # 设置按钮样式
        self.btn.setStyleSheet("background-color: rgb(164, 185, 255);"
                          "border-color: rgb(170, 150, 163);"
                          "font: 75 12pt \"Arial Narrow\";"
                          "color: rgb(126, 255, 46);")
        # 设置按钮提示
        self.btn.setToolTip('按钮提示')
        #点击鼠标触发事件
        self.btn.clicked.connect(self.clickbtn)
        #展示窗口
        self.show();
    #点击鼠标触发函数
    def clickbtn(self):
        #打印出输入框的信息
        textboxValue = self.textbox.text()
        QtWidgets.QMessageBox.question(self, "信息", '你输入的输入框内容为:' + textboxValue,QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Ok)
        #清空输入框信息
        self.textbox.setText('')
    #关闭窗口事件重写
    def closeEvent(self, QCloseEvent):
        reply = QtWidgets.QMessageBox.question(self, '警告',"确定关闭当前窗口?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No)
        if reply == QtWidgets.QMessageBox.Yes:
            QCloseEvent.accept()
        else:
            QCloseEvent.ignore()
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    gui = GUI()
    sys.exit(app.exec_())

现象为:
clipboard.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101091.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Winform 界面 美化 界面库

    Winform 界面 美化 界面库官网[url=http://www.gotrance.com][/url][img=http://img.bbs.csdn.net/upload/201502/07/1423310141_531797.jpg][/img][img=http://img.bbs.csdn.net/upload/201502/07/1423310172_452400.jpg][/im

    2022年5月27日
    31
  • MIPI协议DSI分析[通俗易懂]

    MIPI协议DSI分析[通俗易懂]本文主要从四个方面来介绍MIPIDSI协议       1、MIPI协议简介、DSI简介       2、DSI协议的D-PHY(物理层)简介       3、DSI协议的DSI(传输接口层)简介     4、DSI协议的DCS(DisplayCommandSet)(指令集)简介       MIPI(移动行业处理器接口)是MobileIndustryPro

    2022年5月29日
    61
  • Mit6.S081-实验1-Xv6 and Unix utilities

    Mit6.S081-实验1-Xv6 and Unix utilitiesMit6.S081-实验1-Xv6andUnixutilities前言一、Bootxv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析前言一、Bootxv61,实验目的利用qemu启动xv62,操作流程1)切换到xv6-labs-2020代码库的lab1分支gitcheckoutut

    2022年9月26日
    2
  • 机器学习框架简述

    机器学习框架简述机器学习框架意味着一个能够整合包括机器学习算法在内的所有机器学习的系统或方法,使用户最有效的使用它们。具体来讲,这包括数据表示与处理的方法、表示和建立预测模型的方法、评价和使用建模结果的方法。在所有可用的机器学习框架中,着重于迭代算法和交互处理的框架被公认为是最好的,因为这些特性可以促进复杂预测模型估计和研究人员与数据间的良好交互。当下,优秀的机器学习框架依旧需要包含大数据功能…

    2022年6月17日
    32
  • 微信小程序注册认证文档[通俗易懂]

    一、小程序注册须知小程序小程序主体公司注册小程序名称客户自定义(小程序名称一经填写,修改腾讯官方收取费用300元)二、微信认证申请流程(政府/事业单位类型)第一步:登录微信公众平台->设置->微信认证->开通第二步:同意协议:签署《微信公众平台认证服务协议》第三步:验证管理员第四步:选择认证类型及填写认证资料选择认证类型及上传申请公函政府/事业单位资质信息对公银行账户信息联系人信息填写第五步:确认名称公众号名称可以选择2种

    2022年4月12日
    157
  • 张钹:人工智能技术已进入第三代

    张钹:人工智能技术已进入第三代原文编注:近日,中科院院士、清华大学人工智能研究院院长张钹教授接受记者采访时认为,目前基于深度学习的人工智能在技术上已经触及天花板。从长远来看,必须得走人类智能这条路,最…

    2022年7月26日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号