我正在 Raspberry PI + PiTFT 上使用 PySide 制作一个 kiosk 风格(即全屏)风格的应用程序。
我被限制为 320x240 像素 - 并且很难将消息框强制为特定大小。
最终,我想制作一个全屏、顶部消息框/对话框。
我考虑过使用代码: 如何允许在 PyQt4 中调整 QMessageBox 的大小 但这会挂钩每个事件,并在屏幕上绘制人工制品。
创建顶部全屏消息框的最佳/更好方法是什么?
有很多关于调整 QMessageBox 大小的建议,我尝试了其中的大部分 - 对我来说它们不起作用。有效的方法是获取底层 QGridLayout 的句柄并在那里设置最小尺寸。
class myMsgBox(QtGui.QMessageBox):
def __init__(self, parent):
self.findChild(QtGui.QGridLayout).setColumnMinimumWidth(1, 700)
...
试试这个:
def messageBox(msg, text, informtext):
msg.setText(text)
msg.setInformativeText(informtext)
msg.findChild(QGridLayout).setColumnMinimumWidth(1, len(msg.informativeText()) * msg.fontMetrics().averageCharWidth())
msg.exec()