Название: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 09, 2020, 21:54 Что-то в конце не так:
#include "mainwindow.h" #include "ui_mainwindow.h" #include "QStandardItemModel" #include "QStandardItem" #include <QTableWidget> #include <QMessageBox> #include<QString> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->tableWidget->setColumnCount(4); ui->tableWidget->setRowCount(2); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { QString array[4][2]; int a=0; for(int i=0; i<2; i++) for(int j=0; j<4; j++) { QTableWidgetItem* item = ui->tableWidget->item(i,j); if(ui->tableWidget->item(i,j)==0) { ui->tableWidget->setItem(i,j, new QTableWidgetItem("The Cell is Empty")); a=a+1; } } if(a!=0) QMessageBox::information(this,"New Info","Your table is not full"); else { for(int i=0; i<2; i++) for(int j=0; j<4; j++) { QTableWidgetItem* item = ui->tableWidget->item(i,j); array[j]=item(i,j); } } } Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 09, 2020, 22:14 Последняя строка скорее всего неправльная.
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: kambala от Ноябрь 10, 2020, 11:17 объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code.
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Igors от Ноябрь 10, 2020, 12:26 объяви array как [2][4], тогда будет правильно. Тогда компиляция пройдет, но правильным/хорошим оно не станет :)Да, обучение - двусторонний процесс :) Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: kambala от Ноябрь 10, 2020, 13:43 объяви array как [2][4], тогда будет правильно. Тогда компиляция пройдет, но правильным/хорошим оно не станет :)Да, обучение - двусторонний процесс :) тут явно задача уровня «сдать лабу» :) Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 10, 2020, 17:43 объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code. Объявление правда пропущено. Но это не поможет.Напрямую приравнивать как просто в С++ не поможет. В этом суть моего вопроса. как это равенство корректно записать. Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Авварон от Ноябрь 10, 2020, 18:06 Код: QString array[2][4] Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: kambala от Ноябрь 10, 2020, 18:23 объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code. Объявление правда пропущено. Но это не поможет.Напрямую приравнивать как просто в С++ не поможет. В этом суть моего вопроса. как это равенство корректно записать. какое «равенство» (вероятно, присвоение)? мы ж не знаем что ты пытаешься засунуть в массив. текст ячейки? так надо наверное посмотреть на методы QTableWidgetItem, чтобы понять как его получить? :) Код: array[i][j] = item->text(); 2Авварон: если внимательно присмотреться к коду, можно заметить, что индекс i съеден рендером как курсив ;) Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 10, 2020, 18:25 Кажись получилось:
void MainWindow::on_pushButton_clicked() { QString matr[3][2], a; int i,j; for (i=0; i<2; i++) for(j=0; j<3; j++) { QTableWidgetItem* item = ui->tableWidget->item(i,j); //item->setSelected(true); //QTableWidgetItem *itm=ui->tableWidget->currentItem(); //QMessageBox::information(this,"info",itm->text()); //a=itm->text(); matr[j]=item->text(); QMessageBox::information(this,"info",matr[j]); } } Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 10, 2020, 18:26 matr[j]=item->text();
моль завелась Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: kambala от Ноябрь 10, 2020, 20:40 а еще научись пользоваться тегом code. и моли не будетНазвание: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 10, 2020, 23:07 И как научиться. Где про это написано ?
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 10, 2020, 23:15 Код: QString array[2][4] Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 12, 2020, 17:30 break не срабатывает.
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 12, 2020, 17:31 и goto не помогает
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 12, 2020, 22:18 Они оказались лишними. Без них все прекрасно работает.
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: kambala от Ноябрь 12, 2020, 23:53 - break работает только внутри циклов и switch
- чего ты пытаешься добиться непонятно - ошибка с объявлением массивов до сих пор присутствует советую поучить С++ :) Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 13, 2020, 11:05 Все эти goto и брейки оказались излишними. И бех них все прекрасно работает.
Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 13, 2020, 11:07 - break работает только внутри циклов и switch Это ты мне советуешь ?- чего ты пытаешься добиться непонятно - ошибка с объявлением массивов до сих пор присутствует советую поучить С++ :) У меня проблемы не с С++, а с Qt, поскольку С++ в Visual Studio и в Qt несколько разныею Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Igors от Ноябрь 13, 2020, 11:41 И как научиться. Где про это написано ? См иконки в окне ответа ("код" и "цитата" под "Цвет текста")Это ты мне советуешь ? Таким поведением Вы только провоцируете дальнейшие нравоучения. Лучше подучить плюсы и поднабраться опыта, пока спрашивать здесь рановато.У меня проблемы не с С++, а с Qt, поскольку С++ в Visual Studio и в Qt несколько разныею Название: Re: QtableWidget чтение элементов таблицы в двумерный массив Отправлено: Аларий от Ноябрь 13, 2020, 21:58 Таким поведением Вы только провоцируете дальнейшие нравоучения. Лучше подучить плюсы и поднабраться опыта, пока спрашивать здесь рановато.
Я почему-то до сих пор считал, что вопросы можно задавать на любом форуме (для этого они существуют), а оказалось - не дорос. Видимо звездная болезнь. Это как из википедии моего научного руководителя крупного специалиста в области электроники удали фармацевт и получил медаль за удаление. Что-то с интернетом не то. У меня кстати несколько авторских свидетельств на пакеты программ. А у Вас сколько ? Вы себя, видимо, считаете универсальным программистом во всех сферах применения. Это тонкий лед. Очень легко провалиться. Успехов! Поучайте других. Мне стало здесь совсем неинтересно. |