繁体   English   中英

QGridlayout更改行的高度

[英]QGridlayout changes height of row

我有一个QGridLayout问题。 布局的一行包含通常隐藏的元素(QProgressbar)。 当有报告进度时,我打电话给它。 问题是,当我在QProgressbar上调用show时,包含该行的行上方的行的高度会略微调整(1-3像素)。 因此,整个布局会出现一些“跳跃”,看起来很难看。

我给包含QProgressbar的行赋予了minimumRowHeight,该行比QProgressbar的高度大得多,但行的高度仍在show()上增加。

我已经附上了演示该问题的程序的最低版本。 谁能给我一个提示,这是怎么回事?

标头:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include <QLineEdit>
#include <QtWebKit/QWebView>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);

private:
    QLineEdit* input;
    QWebView *webview;

private slots:
    void slotLoadButton();
};

#endif // MAINWINDOW_H

资料来源:#include“ mainwindow.h”

#include <QProgressBar>
#include <QPushButton>
#include <QGridLayout>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QGridLayout *grid = new QGridLayout;

    input = new QLineEdit;

    QPushButton *loadButton = new QPushButton("load");
    connect(loadButton, SIGNAL(clicked()),
            this, SLOT(slotLoadButton()));

    webview = new QWebView;
    QProgressBar *progress = new QProgressBar;
    progress->setFixedHeight(25);
    progress->hide();

    connect(webview, SIGNAL(loadStarted()),
            progress, SLOT(show()));

    connect(webview, SIGNAL(loadProgress(int)),
            progress, SLOT(setValue(int)));

    connect(webview, SIGNAL(loadFinished(bool)),
            progress, SLOT(hide()));

    grid->addWidget(input, 0, 0);
    grid->addWidget(loadButton, 0, 1);
    grid->addWidget(webview, 1, 0, 1, -1);
    grid->setRowMinimumHeight(2, 35);
    grid->addWidget(progress, 2, 1);

    QWidget* widget = new QWidget;
    widget->setLayout(grid);
    setCentralWidget(widget);
}

void MainWindow::slotLoadButton()
{
    QUrl url = input->text();
    webview->load(url);
}

这看起来像Qt中的错误。 尝试举报

这是一种解决方法:

//grid->addWidget(progress, 2, 1);
QHBoxLayout *l = new QHBoxLayout;
l->addWidget(progress);
QWidget *w = new QWidget;
w->setLayout(l);
grid->addWidget(w, 2, 1);

这可能是由布局的垂直间距和/或边距引起的。 您应该尝试使用这些属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM