如何在活动屏幕上居中显示窗口,而不是在普通屏幕上?此代码将窗口移动到普通屏幕的中心,而不是活动屏幕:

import sys
from PyQt4 import QtGui

class MainWindow(QtGui.QWidget):

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

        self.initUI()

    def initUI(self):

        self.resize(640, 480)
        self.setWindowTitle('Backlight management')
        self.center()

        self.show()

    def center(self):
        frameGm = self.frameGeometry()
        centerPoint = QtGui.QDesktopWidget().availableGeometry().center()
        frameGm.moveCenter(centerPoint)
        self.move(frameGm.topLeft())

def main():
    app = QtGui.QApplication(sys.argv)
    mainWindow = MainWindow()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

如果我移除了self .然后在活动屏幕上的0x0打开窗口.我需要打开活动屏幕上的窗口,并将此窗口移到屏幕中心.坦斯克!

推荐答案

center方法修改为如下所示:

def center(self):
    frameGm = self.frameGeometry()
    screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos())
    centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center()
    frameGm.moveCenter(centerPoint)
    self.move(frameGm.topLeft())

此功能基于鼠标点的位置.它使用screenNumber函数来确定鼠标当前在哪个屏幕上处于活动状态.然后找到显示器的screenGeometry和屏幕的中心点.使用这种方法,即使显示器分辨率不同,也应该能够将窗口置于屏幕中央.

Python-3.x相关问答推荐

如何翻转以列形式给出的日期间隔并提取多个重叠时段内每小时的音量?

IPython似乎已安装但无法运行

DuckDB:带有嵌套对象的星形表达式

小部件padx和包方法ipadx有什么不同?

如何计算累积几何平均数?

AddMultplicationEquality() 用于多个变量

添加任意数量的 pandas 数据框

以特定方式重新排列 pandas 数据框的列

重复数组直到一定长度 groupby pandas

将逗号分隔的字符串类型系列转换为整数列表 pandas

如何向 scikit-learn 函数添加类型提示?

使用正则表达式捕获组解析地址

在python中循环处理时并行写入文件

如何从 Python 3.5 降级到 Python 3.4

判断对 python 3 支持的要求

在数据类中创建类变量的正确方法

全局捕获快速 api 中的异常

如何编写可 Select 充当常规函数的 asyncio 协程?

定义 True,如果没有定义,会导致语法错误

在 PostgreSQL 上使用 SQLAlchemy 创建全文搜索索引