Название: Как вывести из QMap в tableWidget? Отправлено: gertvaQT от Ноябрь 10, 2013, 23:17 Добрый день.
Есть QMap<QString, int> *map = new QMap<QString, int>(); Не могу вывести в tableWidget. В mainwindow.срр пытаюсь вывести так: void MainWindow::on_goButton_clicked() { ui->tableWidget->clearContents(); ui->tableWidget->setRowCount(0); for (int i=0; i<map->size();i++) { ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1); QTableWidgetItem *newItem = new QTableWidgetItem(); newItem->setText(map->key()); ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 0, newItem); newItem = new QTableWidgetItem(); newItem->setText(map->value()); ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 1, newItem); } } Ругается на newItem->setText(map->key()); и newItem->setText(map->value()); Пишет : C:\Qt\Qt5.1.1\Tools\QtCreator\bin\kursMap\mainwindow.cpp:61: ошибка: no matching function for call to 'QMap<QString, int>::key()' newItem->setText(map->key()); Как достать в этом случае содержимое QMap? Заранее благодарен. Название: Re: Как вывести из QMap в tableWidget? Отправлено: kibsoft от Ноябрь 10, 2013, 23:40 Читайте документацию.
Цитировать If you want to navigate through all the (key, value) pairs stored in a QMap, you can use an iterator. QMap provides both Java-style iterators (QMapIterator and QMutableMapIterator) and STL-style iterators (QMap::const_iterator and QMap::iterator). Here's how to iterate over a QMap<QString, int> using a Java-style iterator: Код: QMapIterator<QString, int> i(map); Код: QMap<QString, int>::const_iterator i = map.constBegin(); Название: Re: Как вывести из QMap в tableWidget? Отправлено: gertvaQT от Ноябрь 11, 2013, 21:28 Спасибо. Получилось максимум так. В таком виде запускается, но при нажатии на goButton программа виснет намертво. Что можно сделать?
void MainWindow::on_goButton_clicked() { ui->tableWidget->clearContents(); ui->tableWidget->setRowCount(0); QMap<QString, int>::const_iterator i = map->constBegin(); while (i != map->constEnd()) { ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1); QTableWidgetItem *newItem = new QTableWidgetItem(); newItem->setText(i.key()); ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 0, newItem); newItem = new QTableWidgetItem(); QString str; str = i.value(); newItem->setText(str); ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 1, newItem); } } Название: Re: Как вывести из QMap в tableWidget? Отправлено: kambala от Ноябрь 11, 2013, 22:06 дописать в конце цикла ++i
Название: Re: Как вывести из QMap в tableWidget? Отправлено: gertvaQT от Ноябрь 11, 2013, 23:23 kibsoft, kambala огромное спасибо, дай Вам бог здоровья.
Название: Re: Как вывести из QMap в tableWidget? Отправлено: kibsoft от Ноябрь 12, 2013, 14:32 За такие дела точно должен дать :)
|