zoukankan      html  css  js  c++  java
  • Centering window on the screen

    The following script shows how we can center a window on the desktop screen.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    """
    ZetCode PyQt4 tutorial 
    
    This program centers a window 
    on the screen. 
    
    author: Jan Bodnar
    website: zetcode.com 
    last edited: October 2011
    """
    
    import sys
    from PyQt4 import QtGui
    
    
    class Example(QtGui.QWidget):
        
        def __init__(self):
            super(Example, self).__init__()
            
            self.initUI()
            
        def initUI(self):               
            
            self.resize(250, 150)
            self.center()
            
            self.setWindowTitle('Center')    
            self.show()
            
        def center(self):
            
            qr = self.frameGeometry()
            cp = QtGui.QDesktopWidget().availableGeometry().center()
            qr.moveCenter(cp)
            self.move(qr.topLeft())
            
            
    def main():
        
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()     
    

    The QtGui.QDesktopWidget class provides information about the user's desktop, including the screen size.

    self.center()
    

    The code that will center the window is placed in the custom center() method.

    qr = self.frameGeometry()
    

    We get a rectangle specifying the geometry of the main window. This includes any window frame.

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

    We figure out the screen resolution of our monitor. And from this resolution, we get the center point.

    qr.moveCenter(cp)
    

    Our rectangle has already its width and height. Now we set the center of the rectangle to the center of the screen. The rectangle's size is unchanged.

    self.move(qr.topLeft())
    

    We move the top-left point of the application window to the top-left point of the qr rectangle, thus centering the window on our screen.

  • 相关阅读:
    Linux下php安装
    apache的安装
    线性dp
    蓝桥杯 算法训练 文章翻转
    蓝桥杯 算法训练 连通块
    Distributed Transaction Coordinator 无法启动
    WCF使用小结:(1)WCF接收HTTP POST数据的处理方法
    删除空文件夹 清除CS扩展名文件 bat
    Linux下如何修改ip地址
    is not in the sudoers file 问题解决【转载】
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4435403.html
Copyright © 2011-2022 走看看