Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTableWidget>
#include<QMessageBox>
#include<QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tableWidget->setRowCount(10);
    ui->tableWidget->setColumnCount(5);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString stroka="12345";
    QTableWidgetItem*itm=ui->tableWidget->currentItem();
    //QMessageBox::information(this,"Info",itm->text());
    stroka+=itm->text();
    QMessageBox::information(this,"Info",stroka);
}

Работает, но по функционалу недостаточно.
Нужно прочитать всю табличку в двумерный массив.
В Visual C++ это выполняется функцией GettextMatrix()

Сообщение было отредактировано: 28 мар 20, 22:46
28 мар 20, 21:24    [22107425]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
White Owl
Member

Откуда:
Сообщений: 12501
Лизоблюд
Нужно прочитать всю табличку в двумерный массив.

Делаешь двойной цикл и вызываешь: QTableWidgetItem *QTableWidget::item(int row, int column)
Как вариант, можешь взять у своего ui->tableWidget модель и работать с ней. Это все-таки типичный MVC и функция item() всего-лишь враппер над такой-же функцией модели. Сразу подскажу что QTableWidget использует QStandardItemModel.


Лизоблюд
В Visual C++ это выполняется функцией GettextMatrix()
Неправда. Нет в языке такой функции. Вот в каком-нибудь фреймворке или библиотеке - есть. А в языке нет.
28 мар 20, 23:01    [22107457]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
White Owl
Лизоблюд
Нужно прочитать всю табличку в двумерный массив.

Делаешь двойной цикл и вызываешь: QTableWidgetItem *QTableWidget::item(int row, int column)
Как вариант, можешь взять у своего ui->tableWidget модель и работать с ней. Это все-таки типичный MVC и функция item() всего-лишь враппер над такой-же функцией модели. Сразу подскажу что QTableWidget использует QStandardItemModel.


Лизоблюд
В Visual C++ это выполняется функцией GettextMatrix()
Неправда. Нет в языке такой функции. Вот в каком-нибудь фреймворке или библиотеке - есть. А в языке нет.

6.0
29 мар 20, 01:03    [22107482]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
White Owl
Member

Откуда:
Сообщений: 12501
Лизоблюд
6.0
- Петька, приборы!
- Семнадцать!
- Что "семнадцать"?
- А что "приборы"?
29 мар 20, 06:15    [22107512]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
bk0010
Member

Откуда:
Сообщений: 4935
Заполняем ячейку [row,col] QTableWidget
tableWidget->setItem(row,col,new QTableWidgetItem("значение"));

Читаем ячейку [row,col] QTableWidget
int i=tableWidget->item(row,col)->data(Qt::DisplayRole).toInt()
29 мар 20, 15:44    [22107644]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
bk0010
Заполняем ячейку [row,col] QTableWidget
tableWidget->setItem(row,col,new QTableWidgetItem("значение"));

Читаем ячейку [row,col] QTableWidget
int i=tableWidget->item(row,col)->data(Qt::DisplayRole).toInt()

Спасибо
29 мар 20, 20:00    [22107730]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTableWidget>
#include<QMessageBox>
#include<QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tableWidget->setRowCount(5);
    ui->tableWidget->setColumnCount(3);
    QTableWidgetItem*itm=ui->tableWidget->currentItem();
    tableWidget->setItem(5,3,new QTableWidgetItem("значение"));

}

MainWindow::~MainWindow()
{
    delete ui;
}


В чем я неправ ?

C:\Qt\qtcreator-2.5.2\Works\1\mainwindow.cpp:15: ошибка: 'tableWidget' was not declared in this scope
C:\Qt\qtcreator-2.5.2\Works\1\mainwindow.cpp:14: предупреждение: unused variable 'itm'


Модератор: не забывай про тэг SRC


Сообщение было отредактировано: 29 мар 20, 23:29
29 мар 20, 21:26    [22107778]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
Чо за фигня ?
Сообщение возникает каждую секунду.
Переустановил. Не помогло.

К сообщению приложен файл. Размер - 36Kb
29 мар 20, 23:04    [22107816]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
White Owl
Member

Откуда:
Сообщений: 12501
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTableWidget>
#include<QMessageBox>
#include<QString>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tableWidget->setRowCount(5);
    ui->tableWidget->setColumnCount(3);
    // QTableWidgetItem*itm=ui->tableWidget->currentItem();  // Смысл читать ячейку если потом с ней не работать?
    ui->tableWidget->setItem(5,3,new QTableWidgetItem("значение"));  // Член класса это не локальная переменная.

}

MainWindow::~MainWindow()
{
    delete ui;
}
29 мар 20, 23:34    [22107827]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
White Owl
Member

Откуда:
Сообщений: 12501
Лизоблюд
Чо за фигня ?
Сообщение возникает каждую секунду.
Переустановил. Не помогло.
Ну значит кто-то у тебя в этот файл лезет помимо Qt Creator. Ищи.
29 мар 20, 23:36    [22107829]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
White Owl
Лизоблюд
Чо за фигня ?
Сообщение возникает каждую секунду.
Переустановил. Не помогло.
Ну значит кто-то у тебя в этот файл лезет помимо Qt Creator. Ищи.

При открытии проекта выделял все файлы. Счас выделил тока *.pro и больше ничего не лезет.
29 мар 20, 23:55    [22107831]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
Решение где-то здесь:
    QString stroka="12345";
    QTableWidgetItem*itm=ui->tableWidget->currentItem();
    stroka+=itm->text();
    QMessageBox::information(this,"Info",stroka);

Тока нана убрать лишнее и организовать цикл.

Сообщение было отредактировано: 31 мар 20, 12:01
29 мар 20, 23:57    [22107833]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4750
Лизоблюд,
Сформулируйте вопрос или скажите что вопрос закрыт)
30 мар 20, 21:32    [22108378]     Ответить | Цитировать Сообщить модератору
 Re: Qt Creator QtableWidget ввод-вывод  [new]
Лизоблюд
Member

Откуда:
Сообщений: 26395
PetroNotC Sharp
Лизоблюд,
Сформулируйте вопрос или скажите что вопрос закрыт)

The End
18 апр 20, 10:18    [22118371]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить