PySide:如何设置自定义QMessageBox大小?

问题描述 投票:0回答:2

我正在 Raspberry PI + PiTFT 上使用 PySide 制作一个 kiosk 风格(即全屏)风格的应用程序。

我被限制为 320x240 像素 - 并且很难将消息框强制为特定大小。

最终,我想制作一个全屏、顶部消息框/对话框。

我考虑过使用代码: 如何允许在 PyQt4 中调整 QMessageBox 的大小 但这会挂钩每个事件,并在屏幕上绘制人工制品。

创建顶部全屏消息框的最佳/更好方法是什么?

python pyside qt4.8
2个回答
0
投票

有很多关于调整 QMessageBox 大小的建议,我尝试了其中的大部分 - 对我来说它们不起作用。有效的方法是获取底层 QGridLayout 的句柄并在那里设置最小尺寸。

class myMsgBox(QtGui.QMessageBox):
    def __init__(self, parent):
        self.findChild(QtGui.QGridLayout).setColumnMinimumWidth(1, 700)
        ...

0
投票

试试这个:

def messageBox(msg, text, informtext):
    msg.setText(text)
    msg.setInformativeText(informtext)
    msg.findChild(QGridLayout).setColumnMinimumWidth(1, len(msg.informativeText()) * msg.fontMetrics().averageCharWidth())
    msg.exec()
© www.soinside.com 2019 - 2024. All rights reserved.