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.

  • 相关阅读:
    #Bug--Mapper资源加载不到
    Spring项目用JUnit调试时出现错误 Failed to load ApplicationContext 的解决方法
    安装和配置maven遇到的坑
    DataGrip 异常
    数据库-1055报错-把only_full_group_by去掉
    spring boot 配置logback.xml 日志重复打印
    eclipse创建maven项目
    【C++11新特性】 C++11智能指针之weak_ptr
    socket编程中的粘包问题解决方案
    c++的反映机制实现
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4435403.html
Copyright © 2011-2022 走看看