如何将自由滚动条添加到qlistwidget

时间:2015-12-14 17:46:25

标签: c++ qt qstring qlistwidget

我几乎到处搜索如何将verticalScrollBar添加到QListWidget,但是我无法找到适合我的问题的答案。

我正在尝试将QProcess的输出显示为QListWidget。但是没有垂直滚动条。在我的例子中我有200行,但我只能看到5行,因为没有滚动条。这是我试过的;

    QString program = "ssh";
    QStringList arguments;
    arguments << "localhost" << "tail" << "-n" << "200" << "log.txt";

    QProcess *myProcess = new QProcess(this);
    myProcess->start(program, arguments);
    myProcess->waitForFinished();
    QString output(myProcess->readAllStandardOutput());

        QListWidgetItem *newItem = new QListWidgetItem;
        newItem->setText(output);
        ui->listWidget->insertItem(0, newItem);

        ui->listWidget->setMinimumWidth(ui->listWidget->sizeHintForColumn(0));

        ui->listWidget->verticalScrollBar()->width()`;`

1 个答案:

答案 0 :(得分:0)

QListWidget中的项目通常不会自动换行,因此您可能使用setWordWrap(true)启用自动换行。 此外,您可以使用setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn)强制滚动条显示。

最后使用setVerticalScrollMode(QAbstractItemView::ScrollPerPixel),以便您可以滚动单个大型项目。默认值为ScrollPerItem,这就是您没有看到任何滚动条的原因:没有必要,因为该项目已在视口中。