【问题标题】:'Magical' QTextEdit size'神奇的' QTextEdit 大小
【发布时间】:2010-04-08 05:11:37
【问题描述】:

这是一个等效的提取代码:

#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 像素,最小尺寸也是如此。但出于某种奇怪的原因,它的创建大小约为 100 像素,总是首选我的尺寸提示。其他一切都按预期工作:扩展(尺寸提示在我的应用程序中并没有真正固定)、缩小等。我尝试更改尺寸政策,但绝对没有结果。

【问题讨论】:

    标签: qt


    【解决方案1】:

    这是minumumSizeHint() 方法。我重载它返回sizeHint(),现在一切都按预期工作。

    【讨论】:

      【解决方案2】:

      您还忽略了布局的工作方式。请阅读here,了解为什么您的尺寸在布局中没有得到尊重。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多