#!/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. 【转载】Analysis Service Tabular Model #002 Analysis services 的结构:一种产品 两个模型

    Analysis Service 2012 Architecture – One Product, Two Models 在之前SQL Server 2008 R2 版本中的分析服务实际上只有一个版本 ...

  2. shell-007:数据库备份,本地保留7天,远程机器保留一个月

    ## #!/bin/bash d1=`date +%w` # 以周几有变量 d2=`date +%d` # 以每月第几天为变量 local_bakdir=/bak/mysql # 本地备份目录 rem ...

  3. Oracle 11g

    Oracle 11g 第一章  Oracle 11g数据库简介 1.1  认识Oracle11g Oracle 11g是Oracle 数据库最新的版本,目前已经被企业广泛的应用. 1.2  Oracl ...

  4. Cisco ISR4400 Netflow 配置模板

    flow exporter NAME destination 145.0.1.200 transport udp 9991 export-protocol netflow-v5 flow monito ...

  5. 一次简单的ORM调研

        对于ORM,公司一直在用轻量级的PetaPoco,PetaPoco是挺轻巧,易用性和性能都非常优秀.但也有很多的缺点,在组装复杂sql语句的时候有bug,记忆中使用orderby.sum的时候 ...

  6. C# 字符串类型介绍与操作

    一.关于字符串操作的方法 System.String类提供了很多工具方法,包括返回字符数据长度,查找当前字符串中的子字符串和转换大小写等方法. 在String类中常用的比较字符串的方法主要有Compa ...

  7. java_Proxy动态代理_AOP

    讲了JDK里使用Proxy动态代理的机制,详细过程. 切面类TransactionHandler需要实现InvocationHaandler接口,实现它的invoke方法. 项目目录: User类代码 ...

  8. mongo 授权访问

    1.授权远程也可以访问 - 首先修改mongodb的配置文件 让其监听所有外网ip 编辑文件:/etc/mongodb.conf 修改后的内容如下: bind_ip = 0.0.0.0 port = ...

  9. 【es6】let和const

    let 1.不存在变量提升      es5中var和function都存在变量提升,但let声明的变量不存在.     在代码块内,使用let命令声明变量之前,该变量都是不可用的.这在语法上,称为“ ...

  10. Javac之inner与nested类

    One way declared types in Java differ from one another is whether the type is a class (which include ...