#!/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. day05 --class --home

    # -*- coding: utf-8 -*-# @Time : 2018/12/25 14:24# @Author : Endless-cloud# @Site : # @File : day05 ...

  2. GCD介绍:Dispatch_source

    [转自:GCD介绍(三): Dispatch Sources] 何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象.当这些事件发生时,它自动将一 ...

  3. SHELL脚本进阶

    一.读取参数 $0 程序名称$1 第一个参数$2 第二个参数,依次类推可以使用 basename 来读取程序名称:basename $0 可以使用 dirname 来读取第一个参数的目录:dirnam ...

  4. QuantLib 金融计算——数学工具之插值

    目录 QuantLib 金融计算--数学工具之插值 概述 一维插值方法 二维插值方法 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之插值 载入模块 ...

  5. Django环境搭建之hello world

    当我们想用Python来开发一个web应用时,首先要选择一个优秀的web框架,Django是个非常成熟的web开发框架,网上具有丰富的文档和学习资料,所以选择Django框架来入门web开发是个不错的 ...

  6. abp angular 前端权限控制

    import { AppComponentBase } from '@shared/app-component-base'; this.permission.isGranted(menuItem.pe ...

  7. 数组或者stack

    数组 clear1(long long int array[], size_t int size) { ; i < size; i += ) array[i] = ; } li x5, // i ...

  8. html5与html4区别

    1.声明方法简化,doctype.meta 2.有些元素可以省略标记,body.tbody... 3.新增语义化标签,<section><article>...<arti ...

  9. Java中的异常Exception

    涉及到异常类相关的文章: (1)异常类不能是泛型的 http://www.cnblogs.com/extjs4/p/8888085.html (2)Finally block may not comp ...

  10. call()和apply()方法(切换上下文)

    call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. apply方法: 语法:apply ...