PyQt5每天必学之创建窗口居中效果

本文实例为大家分享了PyQt5如何能够创建在桌面屏幕上居中窗口的具体代码,供大家参考,具体内容如下

下面的脚本说明我们如何能够创建在桌面屏幕上居中的窗口。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个程序是将一个窗口显示在屏幕的中心。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月30日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  self.setGeometry(300, 300, 300, 220)

  self.center()

  self.setWindowTitle('窗口居中')
  self.show()

 def center(self):

  qr = self.frameGeometry()
  cp = QDesktopWidget().availableGeometry().center()
  qr.moveCenter(cp)
  self.move(qr.topLeft())

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

QtGui.QDesktopWidget 类提供了有关用户桌面的信息,包括屏幕尺寸。

self.center()

将居中窗口的代码放置在自定义 center() 方法中。

qr = self.frameGeometry()

frameGeometry() 方法允许我们创建一个无形矩形并根据主窗口的宽高设置自身的宽度与高度。简单理解就是将这个控件(QWidget)的几何内容(宽高位置等),赋值给qr

cp = QDesktopWidget().availableGeometry().center()

计算出你的显示器的屏幕分辨率。根据得到的分辨率我们得到屏幕的中心点。

qr.moveCenter(cp)

我们的矩形(qr)已有宽度和高度,现在设置移动矩形的中心(moveCenter)到屏幕的中心点(cp),矩形的尺寸是不变的。

self.move(qr.topLeft())

移动应用程序窗口的左上角到qr矩形的左上角,从而使应用程序窗口显示在屏幕的中心。

程序执行后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • PyQt5每天必学之关闭窗口
  • PyQt5每天必学之QSplitter实现窗口分隔
  • PyQt5主窗口动态加载Widget实例代码
  • python的tkinter布局之简单的聊天窗口实现方法
  • Python实现遍历windows所有窗口并输出窗口标题的方法
  • python应用程序在windows下不出现cmd窗口的办法
  • python实现根据窗口标题调用窗口的方法
  • Python tkinter模块弹出窗口及传值回到主窗口操作详解
  • pyqt4教程之实现windows窗口小示例分享
  • PyQt5实现无边框窗口的标题拖动和窗口缩放
(0)

相关推荐

  • Python实现遍历windows所有窗口并输出窗口标题的方法

    本文实例讲述了Python实现遍历windows所有窗口并输出窗口标题的方法.分享给大家供大家参考.具体如下: 这段代码可以让Python遍历当前Windows下所有运行程序的窗口,并获得运行窗口的标题输出 #! /usr/bin/env python # -*- coding: utf-8 -*- from win32gui import * titles = set() def foo(hwnd,mouse): #去掉下面这句就所有都输出了,但是我不需要那么多 if IsWindow(hwn

  • python应用程序在windows下不出现cmd窗口的办法

    python写的GTK程序,会有这样一个怪现象,本来在cmd下用 python xxx.py 启动,还好好的,但是用py2exe编译以后,再用subprocess调用命令行程序的时候,就发现一个黑乎乎的cmd窗口跳出来了,特别难看,要消除它其实也还比较容易,但是要使用startupinfo这个windows only的参数,以下代码是linux和windows通用的例子: 复制代码 代码如下: if os.name == 'nt':    startupinfo = subprocess.STA

  • PyQt5实现无边框窗口的标题拖动和窗口缩放

    网上找了半天都找不到好用的PyQt5无边框窗口的实现,借鉴部分前辈的窗口拖放代码,自己实现了一下无边框窗口,问题可能还有一点,慢慢改吧 先做个笔记 py文件 #!/usr/bin/env python #-*- coding:utf-8 -*- from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QVBoxLayout from PyQt5.QtCore import Qt, QPoint from PyQt5.QtGui impo

  • PyQt5每天必学之关闭窗口

    最简单的关闭一个窗口的方法是点击标题栏上的 x 标志.但是,在下面的例子中,我们将展示如何通过编程来控制关闭窗口.我们将使用PyQt5的信号/槽. 以下是我们在例子中使用到的 QPushButton 控件的构造方法. QPushButton(string text, QWidget parent = None) text 参数是在按钮上显示的文本.parent 要将按钮控件放在哪里.在下面的例子中我们要将按钮控件放到 QWidget里.一个应用程序的窗口控件可以形成一个分层结构,在这个层次,大多

  • PyQt5主窗口动态加载Widget实例代码

    本文研究的主要是PyQt5主窗口动态加载Widget的代码示例,具体如下. 我们通过Qt Designer设计两个窗口,命名为主窗口(MainForm)和子窗口(ChildrenForm).我们在主窗口的空白中央添加一个栅格布局并命名为MaingridLayout,等会需要将ChildrenForm放进去. 编写代码 from PyQt5 import QtWidgets from MainForm import Ui_MainForm from Children import Ui_Form

  • python实现根据窗口标题调用窗口的方法

    本文实例讲述了python实现根据窗口标题调用窗口的方法.分享给大家供大家参考.具体分析如下: 当你知道一个windows窗口的标题后,可以用下面的代码调用窗口,甚至向窗口内写入内容. #-*-coding:utf-8-*- import win32gui,win32con #下面的是窗口的标题名称,这样是一定错的,但在控制台就可以正常使用 #写在文件里要用U编码 a=u"jb51.net" dlg=win32gui.FindWindow(None,a) //用控件的ID取得控件的句柄

  • python的tkinter布局之简单的聊天窗口实现方法

    本文实例展示了一个python的tkinter布局的简单聊天窗口.分享给大家供大家参考之用.具体方法如下: 该实例展示的是一个简单的聊天窗口,可以实现下方输入聊天内容,点击发送,可以增加到上方聊天记录列表中.现在只是"单机"版. 右侧预留了空位可以放点儿其它东西.感兴趣的读者可以进一步做成socket双方互聊. 以下是功能代码部分: from Tkinter import * import datetime import time root = Tk() root.title(unic

  • pyqt4教程之实现windows窗口小示例分享

    复制代码 代码如下: import sysfrom PyQt4 import QtGui, QtCoreclass Window( QtGui.QMainWindow):    def __init__(self):        QtGui.QMainWindow.__init__(self)        self.setWindowTitle('hello')        self.resize(800,500) menubar = self.menuBar()        self.

  • Python tkinter模块弹出窗口及传值回到主窗口操作详解

    本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只对一个参数进行设置(或者说从弹出窗口取回一个值),那么可以使用simpledialog,导入方法: from tkinter.simpledialog import askstring, askinteger, askfloat 完整例子 import tkinter as tk from tkin

  • PyQt5每天必学之QSplitter实现窗口分隔

    QSplitter使用户可以通过拖动子面板的边界控制子面板的大小.在我们的例子中,我们使用了两个QSplitter 对三个QFrame 控件进行了分隔. #!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子说明如何使用QSplitter部件. 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月4日 """

随机推荐