pythonGUI编程——Qt库(1)基础

1.简单示例实现一个小窗口。

       PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口。底层已经实现了窗口的基本功能。

#!/usr/bin/python
#coding:utf-8
#简单的例子
import sys
#引入模块,基本控件位于pyqt5.qtwidgets
from PyQt5.QtWidgets import QApplication,QWidget

if __name__ == '__main__':
    #每一个pyqt5应用程序必须创建一个应用程序对象。
    #sys.argv参数是一个列表,从命令行输入参数
    app = QApplication(sys.argv)
    #QWidget部件是pyqt5所有用户界面的基类。
    w = QWidget()
    #resize方法调整窗口大小。
    w.resize(250,150)
    #move()方法移动窗口在屏幕上的位置,窗口打开初始位置
    w.move(300,300)
    #设置窗口标题
    w.setWindowTitle('hello')
    #显示在屏幕上
    w.show()

    #系统exit()方法确保应用程序干净的退出
    sys.exit(app.exec_())

       将会显示一个小窗口:
                                                 在这里插入图片描述

2.在窗口左上角显示一个小小的图标。

#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
#创建Example子类,并且继承QWidegt父类
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        #设置窗口的位置和大小
        self.setGeometry(300,300,300,300)
        #设置窗口标题
        self.setWindowTitle('hello')
        #设置窗口的图标,引用当前目录下的图片
        self.setWindowIcon(QIcon('1.jpg'))
        #显示窗口
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

       super()是一个特殊的函数,它的作用是将父类和子类关联起来。将会显示一个带有皮卡丘图标的小窗口:
                                                 在这里插入图片描述

3.显示一段按钮提示语。

#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont,QIcon

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
        #这种静态的方法用于显示工具提示的字体。第二个参数为字体大小
        QToolTip.setFont(QFont('ScanSerif',12))
        #创建一个提示。
        self.setToolTip('This is a <b>QWidegt</b> widget')
        #创建一个按钮并为它设置一个提示
        btn = QPushButton('Button',self)
        btn.setToolTip('This is a <b>QWidegt</b> widget')

        #btn.sizeHint()显示默认尺寸
        btn.resize(btn.sizeHint())
        #移动按钮窗口的位置
        btn.move(50,50)

        #设置图标
        self.setWindowIcon(QIcon('1.jpg'))
        self.setGeometry(300,300,300,300)
        self.setWindowTitle('Tooltips')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

       运行效果图:
                                          在这里插入图片描述

4.设置点击推出按钮。

#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QPushButton,QApplication
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import QIcon
class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        #设置按钮,取名为Quit
        qbtn = QPushButton('Quit',self)
        #绑定点击退出事件
        qbtn.clicked.connect(lambda:QCoreApplication.instance().quit())
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50,50)

        self.setGeometry(300,300,300,300)
        self.setWindowTitle('Quit button')
        self.setWindowIcon(QIcon('1.jpg'))
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

       代码中lambda为匿名函数,不知道为啥绑定点击退出事件的方法只有设置匿名函数之后才不会报错,希望哪位大佬解答。

       运行效果图点击Quit可以关闭窗口:
                                          在这里插入图片描述

5.设置关闭提示语,即点击 X 号会有提示。

#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QMessageBox,QApplication
from PyQt5.QtGui import QIcon

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,300,300)
        self.setWindowIcon(QIcon('1.jpg'))
        self.setWindowTitle('Message box')
        self.show()

    def closeEvent(self,event):
        '''
        显示一个消息框,两个按钮Yes 或者 No ,
        第一个参数是出现的消息框名称,
        第二个参数是消息框显示的文本,
        第三个参数是选项Yes或者No,
        第四个参数为默认选项No
        '''
        reply = QMessageBox.question(self,'Message',
                                     "Are you sure to quit?",QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

       代码中if语句为判断点击事件如果是yes就退出,如果是no就忽略。
       运行效果图:
                                          在这里插入图片描述

6.将窗口显示在屏幕中央。

#!/usr/bin/python
#coding:utf-8
import sys
from PyQt5.QtWidgets import QWidget,QDesktopWidget,QApplication

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.resize(250,150)
        self.center()
        self.setWindowTitle('center')
        self.show()

    #控制窗口到屏幕中心的方法
    def center(self):
        #获得窗口
        qr = self.frameGeometry()
        #获得屏幕中心点
        cp = QDesktopWidget().availableGeometry().center()
        #显示到屏幕中心
        qr.moveCenter(cp)
        self.move(qr.topLeft())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

       QtGui,QDesktopWidget类提供了用户的桌面信息,包括屏幕大小。
       运行效果图:
                                          在这里插入图片描述

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晶晶娃在战斗

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值