下面是一个等价抽出代码:“神奇”的QTextEdit大小
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QTextBrowser>
#include <QTextEdit>
class ChatMessageEdit : public QTextEdit {
public:
ChatMessageEdit(QWidget* parent) : QTextEdit(parent) { }
virtual QSize sizeHint() const { return QSize(0, 25); }
};
int main(int argc, char** argv) {
QApplication app(argc, argv);
QWidget* widget = new QWidget;
QVBoxLayout* layout = new QVBoxLayout;
QTextBrowser* log = new QTextBrowser(widget);
layout->addWidget(log, 1);
ChatMessageEdit* editor = new ChatMessageEdit(widget);
editor->setMinimumHeight(editor->sizeHint().height()); // empty
layout->addWidget(editor);
widget->setLayout(layout);
widget->show();
return app.exec();
}
用于编辑的最小大小为25像素,所以是它的最小尺寸。但由于一些奇怪的原因,它创建的大小约为100px,即总是首选以达到我的尺寸提示。其他的一切都按预期工作:扩展(尺寸提示并没有真正固定在我的应用程序中),缩小等。我尝试了改变尺寸策略,但是没有结果。