0
点赞
收藏
分享

微信扫一扫

PyQt5:屏幕窗口坐标系与设置图标(三)

禾木瞎写 2022-04-13 阅读 61
qt5python

PyQt5:屏幕窗口坐标系与设置图标(三)

坐标系

​ 无论是屏幕还是窗口,坐标系原点都是左上角,这就意味着y轴方向向下为正,x轴向左为正。但是我们获得屏幕和窗口大小时,期间还是有细微的差别。

看以下代码:

import sys
from PyQt5.QtWidgets import (QHBoxLayout,
                             QMainWindow,
                             QApplication,
                             QWidget,
                             QPushButton)
from PyQt5.QtGui import QIcon

class Qwindow(QMainWindow):
    def __init__(self):
        super(Qwindow,self).__init__()

        # 设置主窗口的标题
        self.setWindowTitle("Qwindow")

        # 设置窗口尺寸
        self.resize(400,300)
        self.move(500,500)

        # 添加按钮,放在当前窗口上,使用self
        self.button1 = QPushButton(QIcon("E:/VS_CODE/vscode_python/人工智能/Lab4/image/black.png"),
                                   '退出程序',
                                   self)
        self.button1.move(0,0)
        self.button1.resize(100,100)
        self.button1.clicked.connect(self.button1_click)
    def button1_click(self):
        val1 = self.geometry()
        val2 = self.frameGeometry()
        print("窗口左上角橫坐标 = %d" % self.x())
        print("窗口左上角纵坐标 = %d" % self.y())
        print("窗口工作区宽度 = %d" % self.width() )
        print("窗口工作区高度 = %d" % self.height())

        print("窗口工作区左上角橫坐标 = %d" % val1.x())
        print("窗口工作区左上角纵坐标 = %d" % val1.y())
        print("窗口工作区宽度 = %d" % val1.width() )
        print("窗口工作区高度 = %d" % val1.height())

        print("整个窗口左上角橫坐标 = %d" % val2.x())
        print("整个窗口左上角纵坐标 = %d" % val2.y())
        print("整个窗口宽度 = %d" % val2.width() )
        print("整个窗口高度 = %d" % val2.height())


if __name__ == "__main__":
    # 创建QApplication示例
    app = QApplication(sys.argv)

    # 设置图标
    # app.setWindowIcon(QIcon(path))

    # 创建窗口
    main = Qwindow()

    # 显示窗口
    main.show()

    # 进入程序主循环,不断扫描检测是否有事件发生
    # 同时通过exit函数确保主循环安全结束

    sys.exit(app.exec_())

在上面代码中self.x()调用的是QWidgetx()这时显示的是整个窗口左上角的橫坐标,同样self.y()调用的是QWidgety()这时显示的是整个窗口左上角的纵坐标。

如下:代表的是左上角坐标
在这里插入图片描述

在上面代码中self.width()调用的是QWidgetwidth()这时显示的是工作区宽度,同样self.height()调用的是QWidgetheight()这时显示的是工作区高度。

如下:

在这里插入图片描述

self.geometry()获得的则是工作区(不包括标题栏)

如下:

在这里插入图片描述

self.frameGeometry()获得的则是整一个窗口

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwoXHK9f-1649576663427)(C:/Users/admin/AppData/Roaming/Typora/typora-user-images/image-20220410154144094.png)]

具体可以运行上面代码,点击按钮输出信息,对比数据

设置窗口和应用程序图标

  • 使用QWidget.setWindowIcon设置窗口图标只在Windows和Linux可用,Mac无法使用
  • QAplication.setWindowIcon可以设置应用程序图标和窗口图标(通用),但是如果已经调用过QWidget.setWindowIcon,那么QAplication.setWindowIcon只能设置应用程序图标

WindowIcon可以设置应用程序图标和窗口图标(通用),但是如果已经调用过QWidget.setWindowIcon,那么QAplication.setWindowIcon`只能设置应用程序图标

举报

相关推荐

PyQt5 常用窗口总结

0 条评论