如何使用 PyQt 根据屏幕分辨率调整主窗口的大小

Posted

技术标签:

【中文标题】如何使用 PyQt 根据屏幕分辨率调整主窗口的大小【英文标题】:How can I resize the main window depending on screen resolution using PyQt 【发布时间】:2014-11-24 16:36:25 【问题描述】:

我有一个包含三个框架的主窗口。顶部框架由页眉组成,底部框架由页脚组成。我使用PyQt4 设计器设计了它。当我在屏幕分辨率为1920*1080 的笔记本电脑上运行它时,窗口看起来很好。但是,当我在 1600*900 等其他分辨率上进行检查时,页脚会被截断。我想知道是否有办法在运行时根据屏幕分辨率调整窗口大小,以便显示所有三个帧。我试图在线检查是否有任何解决方案,但找不到任何解决方案。我尝试使用window.setGeometrywindow.setFixedSize 函数,但它不起作用。

窗口的代码是:

import sys
import os
import threading
import smtplib

from PyQt4 import QtCore, QtGui, uic
import sched
import time

form_class = uic.loadUiType("FirstTest.ui")[0]                 # Load the UI
try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class MyWindowClass(QtGui.QMainWindow, form_class):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)        
        self.setupUi(self)        

#has some code for the field values to be shown







app = QtGui.QApplication(sys.argv)
myWindow = MyWindowClass(None)
#myWindow.setFixedSize(500,500)
myWindow.showMaximized()
palette = QtGui.QPalette()
palette.setColor(QtGui.QPalette.Background,QtCore.Qt.white)
myWindow.setPalette(palette)
myWindow.show()
app.exec_()

【问题讨论】:

【参考方案1】:

你可以使用

showFullScreen() 或只是showMaximized()

您可以通过以下方式获得屏幕几何图形:

desktop() 和 screenGeometry()

【讨论】:

当我使用 window.showFullScreen() 时,它占用了整个屏幕,并且按钮上的关闭按钮也消失了,无法关闭窗口。你能给我一个如何使用它的例子吗? @Valla 我明白了,看看我对 showMaximized 的编辑,我想这就是你要找的。​​span> 还是不行。我使用 QT4 设计器在面板上工作。那么小部件和框架宽度是否应该通过设计器本身调整大小? @Valla 那么你使用布局吗?布局可以根据主窗口的大小调整所有元素的大小。它不能在设计器中完成,因为设计器使用您当前的屏幕。 我已经编辑了我的问题并将代码包含在我的 .py 文件中。创建表单时,我没有在设计器中使用任何布局。

以上是关于如何使用 PyQt 根据屏幕分辨率调整主窗口的大小的主要内容,如果未能解决你的问题,请参考以下文章

从相机 Pyqt5 调整直播帧大小

如何根据缩放、分辨率和窗口大小正确缩放网页?

VC MFC界面怎么根据桌面分辨率自动设置显示窗口和控件的大小

如何编码我的网站,以便我的100%宽度图像根据屏幕分辨率变化调整大小?

如何对我的网站进行编码,以便我的 100% 宽度图像根据屏幕分辨率的变化调整大小?

如何让 Plotly 根据 Streamlit 应用程序中的屏幕分辨率调整绘图大小?