gpt4 book ai didi

python - 如何在不最大化的情况下制作一个占据全屏的窗口?

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:48 30 4
gpt4 key购买 nike

我正在使用 Qt 在 python 中编写

我想创建应用程序窗口(带装饰)以占据全屏大小。目前这是我的代码:

avGeom = QtGui.QDesktopWidget().availableGeometry()
self.setGeometry(avGeom)

问题是它忽略了窗口装饰,所以框架更大了......我用谷歌搜索了一下,没有,发现了这个:

http://harmattan-dev.nokia.com/docs/library/html/qt4/application-windows.html#window-geometry

这似乎表明我需要将 frameGeometry 设置为 avGeom 但是我还没有找到一种方法来做到这一点。此外,在上面链接的评论中,它说我所追求的可能是不可能的,因为程序无法在运行前设置 frameGeometry ... 如果是这样,我只想确认我的问题无法解决.

编辑:

所以我稍微修改了一下代码,这给出了我想要的……但是数字 24 基本上是通过反复试验直到窗口标题可见……我想要一些更好的方法来做到这一点。 .. 独立于窗口管理器..

avGeom = QtGui.QDesktopWidget().availableGeometry()
avGeom.setTop(24)
self.setGeometry(avGeom)

现在我可以做我想做的事,但纯粹是出于反复试验

运行 Ubuntu,使用 Spyder 作为 IDE

谢谢

最佳答案

使用QtGui.QApplication().desktop().availableGeometry()对于窗口的大小:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from PyQt4 import QtGui, QtCore

class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)

self.pushButtonClose = QtGui.QPushButton(self)
self.pushButtonClose.setText("Close")
self.pushButtonClose.clicked.connect(self.on_pushButtonClose_clicked)

self.layoutVertical = QtGui.QVBoxLayout(self)
self.layoutVertical.addWidget(self.pushButtonClose)

titleBarHeight = self.style().pixelMetric(
QtGui.QStyle.PM_TitleBarHeight,
QtGui.QStyleOptionTitleBar(),
self
)

geometry = app.desktop().availableGeometry()
geometry.setHeight(geometry.height() - (titleBarHeight*2))

self.setGeometry(geometry)

@QtCore.pyqtSlot()
def on_pushButtonClose_clicked(self):
QtGui.QApplication.instance().quit()

if __name__ == "__main__":
import sys

app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')

main = MyWindow()
main.show()

sys.exit(app.exec_())

关于python - 如何在不最大化的情况下制作一个占据全屏的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15702470/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com