下面是一個等價抽出代碼:「神奇」的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,即總是首選以達到我的尺寸提示。其他的一切都按預期工作:擴展(尺寸提示並沒有真正固定在我的應用程序中),縮小等。我嘗試了改變尺寸策略,但是沒有結果。