Russian Qt Forum
Ноябрь 23, 2024, 03:40
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
QtableWidget чтение элементов таблицы в двумерный массив
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QtableWidget чтение элементов таблицы в двумерный массив (Прочитано 6359 раз)
Аларий
Новичок
Offline
Сообщений: 15
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);
}
}
}
Записан
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #1 :
Ноябрь 09, 2020, 22:14 »
Последняя строка скорее всего неправльная.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #2 :
Ноябрь 10, 2020, 11:17 »
объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #3 :
Ноябрь 10, 2020, 12:26 »
Цитата: kambala от Ноябрь 10, 2020, 11:17
объяви array как [2][4], тогда будет правильно.
Тогда компиляция пройдет, но правильным/хорошим оно не станет
Да, обучение - двусторонний процесс
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #4 :
Ноябрь 10, 2020, 13:43 »
Цитата: Igors от Ноябрь 10, 2020, 12:26
Цитата: kambala от Ноябрь 10, 2020, 11:17
объяви array как [2][4], тогда будет правильно.
Тогда компиляция пройдет, но правильным/хорошим оно не станет
Да, обучение - двусторонний процесс
так компиляция и сейчас пройдет, просто будет скорее всего падать в рантайме.
тут явно задача уровня «сдать лабу»
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #5 :
Ноябрь 10, 2020, 17:43 »
Цитата: kambala от Ноябрь 10, 2020, 11:17
объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code.
Объявление правда пропущено. Но это не поможет.
Напрямую приравнивать как просто в С++ не поможет.
В этом суть моего вопроса. как это равенство корректно записать.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #6 :
Ноябрь 10, 2020, 18:06 »
Код:
QString array[2][4]
array[i][j] = item(i, j);
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #7 :
Ноябрь 10, 2020, 18:23 »
Цитата: Аларий от Ноябрь 10, 2020, 17:43
Цитата: kambala от Ноябрь 10, 2020, 11:17
объяви array как [2][4], тогда будет правильно. а еще научись пользоваться тегом code.
Объявление правда пропущено. Но это не поможет.
Напрямую приравнивать как просто в С++ не поможет.
В этом суть моего вопроса. как это равенство корректно записать.
оно не пропущено, а объявлено некорректно (цифры наоборот).
какое «равенство» (вероятно, присвоение)? мы ж не знаем что ты пытаешься засунуть в массив. текст ячейки? так надо наверное посмотреть на методы QTableWidgetItem, чтобы понять как его получить?
Код:
array[i][j] = item->text();
2Авварон: если внимательно присмотреться к коду, можно заметить, что индекс i съеден рендером как курсив
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #8 :
Ноябрь 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]);
}
}
Записан
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #9 :
Ноябрь 10, 2020, 18:26 »
matr
[j]=item->text();
моль завелась
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #10 :
Ноябрь 10, 2020, 20:40 »
Цитата: kambala от Ноябрь 10, 2020, 11:17
а еще научись пользоваться тегом code.
и моли не будет
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #11 :
Ноябрь 10, 2020, 23:07 »
И как научиться. Где про это написано ?
Записан
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #12 :
Ноябрь 10, 2020, 23:15 »
Цитата: Авварон от Ноябрь 10, 2020, 18:06
Код:
QString array[2][4]
array[i][j] = item(i, j);
Не работает эта рекомендация, потому что она теоретическая как большинство в интернете, а работает то, чтьо я привел.
Записан
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #13 :
Ноябрь 12, 2020, 17:30 »
break не срабатывает.
Записан
Аларий
Новичок
Offline
Сообщений: 15
Re: QtableWidget чтение элементов таблицы в двумерный массив
«
Ответ #14 :
Ноябрь 12, 2020, 17:31 »
и goto не помогает
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...