#!/usr/bin/python3
# -*- coding:utf-8 -*- import sys
from PySide2.QtWidgets import (QApplication,
QWidget,
QLabel,
QDesktopWidget,
QGroupBox,
QVBoxLayout) class MainWindow(QWidget):
def __init__(self):
super().__init__() self.screen_size = QLabel(u'尺寸:', self)
# 创建一个水平布局
v_box_screen = QVBoxLayout()
v_box_screen.addWidget(self.screen_size) # 创建一个组件组
group_screen = QGroupBox('屏幕:', self)
group_screen.setGeometry(10, 10, 120, 50)
group_screen.setLayout(v_box_screen) self.window_position = QLabel(u'坐标:', self)
self.window_size = QLabel(u'尺寸:', self)
# 创建一个水平布局
v_box_window = QVBoxLayout()
v_box_window.addWidget(self.window_position)
v_box_window.addWidget(self.window_size) # 创建一个组件组
group_window = QGroupBox('窗口:', self)
group_window.setGeometry(10, 70, 120, 80)
group_window.setLayout(v_box_window) self.resize(300, 200)
self.setWindowTitle('Simple Window') self.information() def information(self):
desktop = QDesktopWidget()
screen_width = desktop.screenGeometry().width()
screen_height = desktop.screenGeometry().height() self.screen_size.setText(u'尺寸:' + str(screen_width) + u' * ' + str(screen_height)) def moveEvent(self, *args, **kwargs):
"""重写移动函数"""
window_x = self.geometry().x()
window_y = self.geometry().y()
self.window_position.setText(u'坐标:' + str(window_x) + u' * ' + str(window_y)) def resizeEvent(self, *args, **kwargs):
"""重写改变尺寸函数函数"""
window_width = self.geometry().width()
window_height = self.geometry().height()
self.window_size.setText(u'尺寸:' + str(window_width) + u' * ' + str(window_height)) if __name__ == '__main__':
app = QApplication()
window = MainWindow()
window.show()
sys.exit(app.exec_())

效果如下图:

因为想到让显示的窗口居中,进而想到获取显示屏和窗口的大小。

窗口大小很简单,QWidget.geometry() 就可以获得当前窗口的坐标和尺寸,要注意的是在 window.show() 之前获取是不准的,需要在窗口显示完之后获取才能得到准确的坐标和尺寸。

显示屏的话可以使用 QDesktopWidget.screenGeometry,文档里说是:

The PySide2.QtWidgets.QDesktopWidget class provides access to screen information on multi-head systems.

此外,我为了好看,使用了 QGroupBox ,它貌似无法直接添加组件,需要先设置一个布局,再将组件添加入布局才行。

【PyQt5 学习记录】003:水平布局和获取屏幕尺寸的更多相关文章

  1. Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度

    ###########################################Android计量单位########################################### px ...

  2. 工具类 dp转px 获取图片实际尺寸 获取屏幕尺寸

    dp转px public class Dp2pxUtils { public static int Dp2Px(Context context, float dp) { final float sca ...

  3. 微信小程序学习点滴《十二》:图片等比例缩放 获取屏幕尺寸图片尺寸 自适应

    原文:http://www.wxapp-union.com/portal.php?mod=view&aid=360 早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于屏 ...

  4. javascript中获取屏幕尺寸

    Javascript获取获取屏幕.浏览器窗口 ,浏览器,网页高度.宽度的大小 屏幕的有效宽:window.screen.availHeight屏幕的有效高:window.screen.availWid ...

  5. Android 获取屏幕尺寸与密度

      android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲 ...

  6. android 获取屏幕尺寸

    文章转载自:http://blog.csdn.net/congqingbin/article/details/7474276// 通过WindowManager获取 DisplayMetrics dm ...

  7. 【转】微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 自适应

    原文[https://blog.csdn.net/qq_31383345/article/details/53127804] 早上在论坛上看到有人写了关于图片等比例缩放的文章,只是判断了图片宽是否大于 ...

  8. Android 获取屏幕尺寸与密度(转载)

    android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一 ...

  9. 微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 自适应

    wxml: <image style="width: {{imagewidth}}px; height: {{imageheight}}px;"  src="{{i ...

随机推荐

  1. Dota2App--第三天

    一.要实现的功能 1.新特性页面 1.1.是否进入新特性界面的两种情况 1)第一次安装此APP,进入新特性界面 2)不是第一次安装,但是有版本更新,进入新特性界面 1.2.具体的代码实现 //0.版本 ...

  2. Springmvc之表单验证

    1.需要的相关jar 这里采用的是hibernate-validator-5.2.4.Final 和validation-api-1.1.0.Final 两个jar包.Hibernate Valida ...

  3. js 的概念和声明-js 的变量-js 的运算符和逻辑结构-js 的数组

    js 的概念和声明Js的概念和声明:问题:在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效造成用户体验极差解决:使用JavaScript作用:可以让网页和用户之间进行直接简单的 ...

  4. js字符串去重

    js字符串去重: 1.  去掉字符串前后所有空格: function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } ...

  5. 01-django项目环境搭建

    一.Web应用框架----Django http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理. Web应用框架处理完以后再发送给http服务器,http服务器再返回给用户 二.工具准 ...

  6. 图解http 笔记

    一,了解web以及网络基础 1,使用http协议访问web web页面是由web浏览器根据地址栏中指定的url从web服务器获取文件资源等信息然后显示的页面. 像这种通过发送请求获取服务器资源的web ...

  7. Html5与本地App资料整理分析

    最近开发了一个小的手机网站,重新了解了本地应用,html5,混合应用,webApp等概念,整理下相关的资料,略带自己的思考 用户固有的使用习惯 在<2012年度 HTML5状况及发展形势报告.p ...

  8. sysv-rc-conf介绍

    sysv-rc-conf简介 sysv-rc-conf是一个强大的服务管理程序,Ubuntu运行级别Linux 系统任何时候都运行在一个指定的运行级上,不同的运行级的程序和服务都不同,所要完成的工作和 ...

  9. JavaScript数据结构-4.栈操作

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Go语言学习笔记一: Hello World

    Go语言学习笔记一: Hello World 听说Go语言又快又简单.即具有C语言的运行速度,又具有Python语言的开发效率,不知道真的假的.所以特意来学学这门"老"语言. 下载 ...