#!/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. CODEVS-1215迷宫

    迷宫 原题:传送门 题目描述 Description 在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走.从左上角((0,0)“s”)位置处走到右下角((n-1, ...

  2. .crx 文件修改

    .crx 文件类型:Chrome Extension 扩展名为.crx的文件是一个插件文件. 解压:使用7zip 修改: notepad++ 打包: Chrome 扩展项

  3. 关于如何用js完成全选反选框等内容

    在学习js过程中按照视频写了这个页面 可以在点上面全选/全不选时全部选中或者取消 在单击下面的单选框时上面的全选会根据下面的单选框进行相应的调整 功能比较完善 以下是代码 <!DOCTYPE h ...

  4. [Xamarin.Android]使用Java Bindings Libary專案 Binding Java元件(.jar) 與Metadata.xml、型別對應 (转帖)

    使用Xamarin開發Android APP時, 如果已經有原本就用Java寫好的套件(.jar), 就可以利用Xamarin提供的Java Bindings Libary將他變成C#可使用的元件. ...

  5. SVN无法读取cruuent修复方法

    解决方法:在网上百度和google了一大圈之后,终于得知是断电时current和txn-current文件没有写入当前最新版本号和最新版本的路径问题 当时非常抓狂,项目刷新一直为空. 1.先把curr ...

  6. sql在insert时判断有无唯一性冲突

    sql在insert时判断有无唯一性冲突,存在相同主键或唯一索引,则不创建 INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'fi ...

  7. Windows Server 2003、2008、2012系统的安装

    说在前面的话 Windows Server 2003,和Windows XP十分相似,可以简单地认为Windows Server 2003是在Windows XP的基础上多了一些服务器管理和操作的功能 ...

  8. 《python灰帽子》学习笔记:调试器设置

    一.构造 C  数据类型 C Type | Python Type | ctypes Type ____________________________________________________ ...

  9. 实现Date函数属性中的format方法

    js中没有Date.format方法的,所以在date属性中加format方法 //js格式化属性 Date.prototype.format = function (format) { var o ...

  10. Ubuntu系统Java开发环境的搭建

    操作系统:Linux x64 / Ubuntu 14.04 Java JDK版本:jdk-8u65-linux-x64.tar.gz 声明:转载请注明出处及本文链接 本文原文地址:Ubuntu系统Ja ...