当前位置:   article > 正文

Python图形界面--PyQt (一)_pyqt5 一个界面划分多个区域

pyqt5 一个界面划分多个区域

PyQt5 从第一个程序开始

学习自:
链接: link.

链接: link.

第一段代码片

代码片.
创建窗口,设置窗口大小,设置窗口名称等

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import sys
from PyQt5 import QtWidgets, QtCore

if __name__ == "__main__":
	# 这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。
	# 每个PyQt5应用都必须创建一个应用对象。
	#  `sys.argv是一组命令行参数的列表。 `
	# Python可以在shell里运行,这个参数提供对脚本控制的功能。
    app = QtWidgets.QApplication(sys.argv)
	# QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。
    widget = QtWidgets.QWidget()

    widget.resize(320, 240)
    widget.setWindowTitle("Hello PyQt5!!!")
    widget.show()
	# 这里,只有进入循环,才创建完成,否则一直显示未响应
    sys.exit(app.exec_())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

第二段代码片

代码片.
设置提示框,添加button,

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
                             QPushButton, QApplication)
from PyQt5.QtGui import QFont


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        # 这个静态方法设置了提示框(鼠标放上去有说明)的字体,我们使用了10px的SansSerif字体。
        QToolTip.setFont(QFont('SansSerif', 10))
        # 调用setTooltip()创建提示框可以使用富文本格式的内容。
        # 给这个window的窗口设置的提示框
        self.setToolTip('This is a <b>QWidget</b> widget')

        # 创建一个可以按的按钮
        btn = QPushButton('Button', self)
        # 给按钮加上提示框
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        # 重新定义按钮大小  为 btn.sizeHint() 那么大的按钮 这个大小是默认的为PyQt5.QtCore.Qsize(75,23)
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Tooltips')
        self.show()
        # 这里有一个问题,设置提示框的字体以及大小
        # 是如何传入到窗体的提示框,以及button的提示框里面去的?
        # 猜测可能是全局变量,当调用setToolTip时,调用QToolTip里面的内容


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

第三段代码片

代码片.
设置按钮的功能,通过连接

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        # 创建一个button,父级组件是 QWidget
        qbtn = QPushButton('Quit', self)
        # 窗口建立连接,连接到 APP 实例的 退出功能
        # 点击按钮之后,信号会被捕捉并给出既定的反映。QCoreApplication是事件的主循环
        # 它能添加和删除所有的事件,instance()创建了一个它的实例。
        # 点击事件和能终止进程并退出应用的quit函数绑定在了一起。
        # 在发送者和接受者之间建立了通讯,发送者就是按钮,接受者就是应用对象.退出功能
        qbtn.clicked.connect(QCoreApplication.instance().quit)
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')
        self.show()


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


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

第四段代码片

代码片.
当关闭时,弹出消息框,确认关闭与否

import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication


class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Message box')
        self.show()

    def closeEvent(self, event):
        # 这里closeEvent属于子类重写,当关闭时调用
        # d当关闭QWidget时,会产生一个QCloseEvent,改变这个event默认的行为
        # 弹出yes or no
        # 设立一个消息盒子,提出问题,有两个选项 用或相连,后面是默认值
        # 如果选yes,那么就接收,如果选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_())


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

第五段代码片

代码片.

import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        self.resize(1000, 800)
        self.center()

        self.setWindowTitle('Center')
        self.show()

    def center(self):

        # QDesktopWidget提供了用户的桌面信息,包括屏幕的大小,frame框架 Geometry几何位置
        # 得到了主窗口的大小。
        qr = self.frameGeometry()
        # 这个就是调取桌面的几何位置的中心位置
        # 获取显示器的分辨率,然后得到中间点的位置。
        cp = QDesktopWidget().availableGeometry().center()
        # 将窗口移动到桌面的中心
        # 然后把自己窗口的中心点放置到qr的中心点。
        qr.moveCenter(cp)
        # 将窗口移动到电脑屏幕的左上角
        # 这里如果不移动到左上角会发生什么呢?
        # 之前不是已经将中心点与中心点对其了吗?
        self.move(qr.topLeft())


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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/909944
推荐阅读
相关标签
  

闽ICP备14008679号

        
cppcmd=keepalive&