2015-12-14 1 views
0

Je recherche presque partout comment ajouter verticalScrollBar à QListWidget, mais je n'ai pas trouvé de réponse appropriée à ma question. J'essaie de montrer la sortie de QProcess à QListWidget. Cependant, il n'y a pas de barre de défilement verticale. Dans mon exemple, j'ai 200 lignes, mais je ne vois que 5 lignes, car il n'y a pas de barre de défilement. Voici ce que j'ai essayé;Comment ajouter une barre de défilement gratuite à qlistwidget

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()`;` 

Répondre

0

Les éléments d'un QListWidget ne le font pas habituellement mot-wrap, alors vous avez probablement permis le retour automatique à l'aide setWordWrap(true). Vous pouvez également forcer la barre de défilement à être visible à l'aide de .

Enfin, utilisez setVerticalScrollMode(QAbstractItemView::ScrollPerPixel) de sorte que vous pouvez faire défiler seul grand articles. La valeur par défaut est ScrollPerItem, ce qui explique pourquoi vous ne voyez aucune barre de défilement: il n'y en a pas besoin car l'élément est déjà dans la fenêtre d'affichage.