【问题标题】:How can I resize the main window depending on screen resolution using PyQt如何使用 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_()

【问题讨论】:

    标签: python qt pyqt pyqt4


    【解决方案1】:

    你可以使用

    showFullScreen() 或只是showMaximized()

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

    desktop()screenGeometry()

    【讨论】:

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