下面是一个等效的提取代码:
#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 so,它的最小大小也是如此。但是,由于一些奇怪的原因,它是以大约100 to的大小创建的,它总是比我的大小提示更好。其他的一切都如预期的那样工作:扩展(在我的应用程序中大小提示并不是真正固定的),收缩等等。我尝试改变大小策略,但是完全没有结果。
发布于 2010-01-30 14:52:43
这是minumumSizeHint()方法。我重载了它以返回sizeHint(),现在一切都如愿以偿。
发布于 2010-02-01 16:22:32
您也忽略了布局是如何工作的。请阅读这里关于为什么您的大小在布局中没有得到尊重。
https://stackoverflow.com/questions/2166371
复制相似问题