PyQt5——QWidget

QWidget

基础窗口控件QWiget类是所有用户界面对象的基类,所有的窗口和空间都是直接或者间接继承自QWiget类。

窗口控件(QWiget 控件)是在PyQt中建立界面的主要元素。在PyQt中把没有嵌入到其他控件的控件为窗口,一般窗口都有边框、标题栏。窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮等。一个程序可以有多个窗口,一个窗口可以有多个控件。

窗口坐标系统

在这里插入图片描述

屏幕左上角为原点,即(0,0)点,从左到右为 X X X轴正向,从上到下为 Y Y Y轴正向。整个屏幕的坐标系统就用顶层窗口的。在窗口内部也有自己的坐标系统,坐标系统和外部是一样的。

QWidget直接提供的成员函数:x(),y()获取客户区左上角的坐标,width()、height()获得客户区的宽度和高度。

QWidget的geometry()提供成员函数,x(),y()获得客户区左上角的坐标,width()、height()获得客户区的宽度和高度

QWidget的frameGeometry()提供的成员函数,x(),y()获得窗口左上角的坐标,width()、height()获得客户区、标题栏和边框在内的整个窗口的宽度和高度。

常用的几何机构

QWidget 不包含边框的常用函数

一般情况下,不包含边框的部分是客户区,可以添加子控件。这部分是一个长方形,会有大小和位置。大小就是指宽度(width)和高度(height),位置就是指这个长方形在屏幕上的位置。在Qt中保存这个长方形使用的QRect,这个类有自己的大小和位置。要改变其大小和位置,可以使用如下的函数

改变客户区的面积
QWidget.resize(width, height)
QWidget.resize(QSize)

这两个函数改变长方形的大小,其中第一个参数就是宽度、第二个参数是高度,设置了大小的窗口,还可以是鼠标来改变它的大小。

获得客户区的大小
QWidget.size()
获得客户区的宽度和高度
QWidget.width()
QWidget.height()
设置客户区的宽度和高度
QWidget.setFixedWidth(int width)

使用这个函数,客户区的高度就是固定的,不可以改变,只可以改变宽度。

QWidget.setFixedHeight(int height)

这个宽度就是固定的,不可以改变,但是可以改变高度

QWidget.setFixedSize(QSize size)
QWidget.setFixedSize(int width, int height)

高度和宽度都是固定的,不可以通过鼠标来改变窗口的宽度和高度。如果要同时改变客户区的大小和位置,需要用到一下位置。

QWidget.setGeometry(int x, int y , int width,int height)
QWidget.setGeometry(QRect rect)

QWidget 包含边框的常用函数

QWidget包含边框、这个边框的大小和位置,是窗口在屏幕上显示的整个区域。

获得窗口的大小和位置
QWidget.frameGeometry()
设置窗口的位置
QWidget.move(int x,int y)
QWidget.move(QPoint point)
获得窗口左上角的坐标
QWidget.pos()

屏幕坐标系统显示

# -*- coding: utf-8 -*-

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

app = QApplication(sys.argv)
widget = QWidget()
btn = QPushButton(widget)
btn.setText("Button")
btn.move(20, 20)
widget.resize(300, 200)
widget.move(250,200)
widget.setWindowTitle("PyQt坐标系统例子")
widget.show()
print("QWidget:")
print("w.x() = %d " %widget.x())
print("w.y() = %d " %widget.y())
print("w.width() = %d " %widget.width())
print("w.height = %d " %widget.height())
print("QWidget.geometry")
print("widget.geometry().x() = %d " %widget.geometry().x())
print("widget.geometry().y() = %d " %widget.geometry().y())
print("widget.geometry().width() = %d " %widget.geometry().width())
print("widget.geometry().height() = %d " %widget.geometry().height())
sys.exit(app.exec_())

在这里插入图片描述

创建一个PyQt5应用

# -*- coding: utf-8 -*-
import  sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.resize(300,200)
window.move(250, 150)
window.setWindowTitle("Hello PyQt5")
window.show()
sys.exit(app.exec_())

在这里插入图片描述

为应用设置程序图标

程序图标就是一个小图标,通常显示在标题栏的左上角。

# -*- coding: utf-8 -*-

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QWidget, QApplication

# 创建一个Icon的窗口,继承来自QWidget类
class Icon(QWidget):
    def __init__(self, parent = None):
        super(Icon ,self).__init__(parent)
        self.initUI()

    # 初始化窗口
    def initUI(self):
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle("程序图标")
        self.setWindowIcon(QIcon('./images/python.ico'))


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

在这里插入图片描述

显示气泡提示信息

对于关键的操作,给出相关信息的提示是非常有用的。

# -*- coding: utf-8 -*-

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

class winform(QWidget):
    def __init__(self):
        super().__init__()
        self.initUi()

    def initUi(self):
        QToolTip.setFont(QFont('SansSerif', 10))
        self.setToolTip("这是一个<b>气泡提示</b>")
        self.setGeometry(200, 300, 400, 400)
        self.setWindowTitle("气泡提示demo")

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值