2011-06-09 1278 views
5

如何将QListWidget中的所有小部件的文本作为QList<QString>如何在Qt中从QListWidget获取所有项目的文本?

我能得到的控件项目列表如下:

QList<QListWidgetItem *> items = 
     ui->listWidget->findItems(QString("*"), Qt::MatchWrap | Qt::MatchWildcard); 

但是,这不是正是我想要的,我想小部件text()属性的列表。

+0

你想要一个'QList '代表所有的listWidget的item'text'属性吗? – Mat 2011-06-09 05:57:19

+0

@Mat:是的........ – user662285 2011-06-09 06:06:45

回答

5

没有内置的功能,你需要手动完成。

QList<QString> texts; 
foreach(QListWidgetItem *item, items) 
    texts.append(item->text()); 

或类似的东西。

+0

嗨,只是想知道我怎么能在python上做到这一点? – Katherina 2012-02-10 03:13:56

+1

@Katherina http://stackoverflow.com/a/12087777/3027322 – Hubschr 2014-04-09 08:10:39

0
int c = ui->listWidget->count(); 
for (int i = 0; i < c ; ++i){ 

QString s = QString::number(i); 
QModelIndex *model_index = new QModelIndex(ui->listWidget->model()->index(i,0)); //0th column since we have one cloumn in listwidget 
QString q= model_index->data(Qt::DisplayRole).toString(); 
qDebug()<<q; 

} 
+0

请添加一些细节来解释这个答案。 – 2016-05-22 06:24:59

相关问题