擅长:python、mysql、java
<p>这是我要用的解决办法。这不会使对话框的大小可调整,但会使对话框在“详细信息”框可见时自行更改为合理的大小。我毫不羞耻地从谢尔盖·古本科的回答中窃取了一些想法。即使你愿意实现他的大小调整,我谦卑地提供一些其他改进如下。</p>
<pre><code># Safe since everything in the namespace begins with 'Q'
from PyQt4.QtGui import *
class MyMessageBox(QMessageBox):
# This is a much better way to extend __init__
def __init__(self, *args, **kwargs):
super(MyMessageBox, self).__init__(*args, **kwargs)
# Anything else you want goes below
# We only need to extend resizeEvent, not every event.
def resizeEvent(self, event):
result = super(MyMessageBox, self).resizeEvent(event)
details_box = self.findChild(QTextEdit)
# 'is not' is better style than '!=' for None
if details_box is not None:
details_box.setFixedSize(details_box.sizeHint())
return result
</code></pre>