gpt4 book ai didi

ubuntu - 将最大化按钮添加到 PyQt4 对话框并使对话框居中于父窗口

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:28 33 4
gpt4 key购买 nike

我有一个带有大文本框的对话框。我希望用户能够最大化对话框。我已经尝试了以下选项(XML_Editor 是一个 QDialog 实例):

XML_Editor.setWindowFlags(QtCore.Qt.Window or QtCore.Qt.WindowMaximizeButtonHint) -- 显示最大化按钮但不使对话框居中 w.r.t. parent 了

XML_Editor.setWindowFlags(QtCore.Qt.Dialog 或 QtCore.Qt.WindowMaximizeButtonHint 或 QtCore.Qt.CustomizeWindowHint) -- 无效

现在我的问题是:如何实现最大化按钮显示和弹出对话框居中 w.r.t. parent ?网络上的大多数资源似乎都集中在如何摆脱最大化按钮上。有什么想法可以达到相反的效果吗?

主要目标是 Ubuntu 10.04(默认配置),如果它也适用于 Windows 和 Mac,那就太好了。

我很感激任何提示。提前致谢。

最佳答案

主要平台上的各种窗口管理器的行为都会有所不同,因此很难想出一个 100% 保证在所有情况下都能正常工作的解决方案。

使用默认 windowFlags在 Linux KDE 上生成一个带有上下文、最大化、最小化和关闭按钮的对话框;但对于 Windows XP,只有上下文和关闭按钮。

对于大多数平台,似乎至少需要设置 WindowSystemMenuHintWindowMaximizeButtonHint 标志,以确保出现最大化按钮。

要确保对话框保持在父窗口的中心,只需在对话框的构造函数中传递对父窗口的引用即可。

(请注意,组合标志时,您必须使用按位或运算符|。在您的示例中,您使用 bool 值或运算符 or,它将选择第一个非零值,但忽略其他值)。

以下示例在 Linux KDE 和 Windows XP 上为我生成一个带有最大化按钮的居中对话框:

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.button = QtGui.QPushButton('Show Dialog', self)
self.button.clicked.connect(self.handleButton)
layout = QtGui.QHBoxLayout(self)
layout.addWidget(self.button)

def handleButton(self):
dialog = QtGui.QDialog(self)
dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
dialog.setWindowFlags(dialog.windowFlags() |
QtCore.Qt.WindowSystemMenuHint |
QtCore.Qt.WindowMinMaxButtonsHint)
dialog.resize(160, 120)
dialog.show()

if __name__ == '__main__':

import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
window.resize(320, 240)
sys.exit(app.exec_())

关于ubuntu - 将最大化按钮添加到 PyQt4 对话框并使对话框居中于父窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969412/

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