【发布时间】:2015-11-25 16:09:42
【问题描述】:
嗨,当我单击 Qdialog 中的按钮时,我想在主窗口中获取 QListView 的文本字符串。我的实现是:
在Qdialog中
void hist::getValue(){
QModelIndexList templatelist =
ui->listView->selectionModel()->selectedIndexes();
QStringList stringlist;
foreach (const QModelIndex &index, templatelist) {
stringlist.append(index.data(Qt::DisplayRole).toString());
}
qDebug()<<stringlist;
// return stringlist; // what i need to here to return stringlist ?
}
void hist::on_downloadselected_clicked() {
connect(ui->downloadselected, SIGNAL(clicked()), SLOT(accept()));
// TODO selected download
}
在主窗口中
void mainwindow::on_pushButton_2_clicked()
{
hist history;
history.exec();
if( history.exec() == QDialog::Accepted ){
QString damn = history.getValue(); // am getting error here
ui->url->setText(damn);
qDebug()<<"pressed";
}
}
【问题讨论】:
-
更新原型
void hist::getValue()以在主窗口中返回Qstring,如果您需要 Qlist 中的所有值(在主窗口和 qdialog 中),则返回QStringList。 -
@Megasa3 什么论据??
-
@Megasa3 当从包含 Qlistview 的对话框中单击按钮时,我想在我的主窗口中获取所选列表项的文本。
-
"am getting error here",通常最好知道是什么错误。虽然这里很清楚,但您的方法返回
void,即什么也没有。如果选择了多个项目,你想做什么?也许您应该防止选择多个项目(通过设置列表小部件的适当属性)?然后只需让getValue以 QString 的形式返回第一个(希望是唯一的)选择。 -
我知道昨晚会把我的解决方案放在这里