如何使用 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.setGeometry
和window.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 根据屏幕分辨率调整主窗口的大小的主要内容,如果未能解决你的问题,请参考以下文章
VC MFC界面怎么根据桌面分辨率自动设置显示窗口和控件的大小
如何编码我的网站,以便我的100%宽度图像根据屏幕分辨率变化调整大小?