0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 22
1

Получение состояния CheckBox, который находится в TableWidget

14.11.2018, 00:15. Показов 4800. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер, форумчане. У меня имеется таблица, в который один из столбцов состоит из CheckBox-ов. Мне необходимо получить информацию, отмечен он или нет. Как это сделать? Перепробовала кучу всего, но результата нет.
C++ (Qt)
1
2
3
4
int column= ui->tableWidget->columnCount();
for(int i = 0; i < column; i++){
 if(ui->tableWidget->item(i,DELETE)->checkState()==Qt::Checked)
 {   ...          }
Надеюсь на Вашу помощь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2018, 00:15
Ответы с готовыми решениями:

Как работать с CheckBox который находится в CollectionViewSource?
Есть &lt;Page.Resources&gt; &lt;CollectionViewSource x:Name=&quot;Maincol&quot; /&gt; &lt;/Page.Resources&gt;//...

CheckBox и TableWidget
Привет всем! Как выровнять по центру checkbox внутри ячейки. QTableWidgetItem*...

Получение свойств Height и Width Canvas'a, который находится в DockPanel
В моём окне единственный элемент Canvas, который лежит в DockPanel, чтобы размеры Canvas'a...

Проверка состояния checkbox
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt;Поштова...

4
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
14.11.2018, 01:52 2
QTableWidgetItem *QTableWidget::item(int row, int column) const
Первым параметром идет строка, потом колонка. Индекс колонки и должен быть постоянным, но почему вы перебираете индексы колонок и подставляете их первым параметром в качестве индекса строки? Может имелось в виду:
C++ (Qt)
1
2
3
4
5
    for(int i = 0; i < ui->tableWidget->rowCount(); ++i){
        if(ui->tableWidget->item(i, DELETE)->checkState()==Qt::Checked) {            
            // ...
        }
    }
0
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 22
14.11.2018, 02:05  [ТС] 3
Да, я в этом моменте напутала. Но это не помогло решить проблему, на if программа прерывается аварийно
0
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,964
14.11.2018, 06:52 4
Лучший ответ Сообщение было отмечено Elli123 как решение

Решение

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "widget.h"
#include "ui_widget.h"
 
 
 
 
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
 
    // заполнение таблицы
    for(int i = 0; i < 5; i++)
    {
        ui->tableWidget->setCellWidget(i ,1, new QCheckBox);
 
        QCheckBox* pCheckB(qobject_cast<QCheckBox*>(ui->tableWidget->cellWidget(i, 1)));
        if (pCheckB) pCheckB->setChecked(false);
    }
 
    QObject::connect(ui->pbtn_01, SIGNAL(clicked()), this, SLOT(mypress_pbtn_01()));
}
 
 
 
 
Widget::~Widget()
{
    delete ui;
}
 
 
 
 
void Widget::mypress_pbtn_01()
{
    QString str;
 
    // чтение таблицы
    for(int i = 0; i < 5; i++)
    {
        QCheckBox* pCheckB(qobject_cast<QCheckBox*>(ui->tableWidget->cellWidget(i, 1)));
        if (pCheckB->isChecked())
        {
            str += QString::number(i+1) + "  ";
        }
    }
 
    ui->label->setText(str);
}
Я только не знаю, как чекбоксы сделать по центру ячейки таблицы...
Миниатюры
Получение состояния CheckBox, который находится в TableWidget  
1
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
14.11.2018, 10:38 5
Цитата Сообщение от Elli123 Посмотреть сообщение
if программа прерывается аварийно
Поскольку в условии указываются индексы, то, вероятнее всего, вы обращаетесь к несуществующему индексу, либо имеет место ошибка типа out of range. Отладчик вам в помощь, поставьте точку прерывания, удостоверьтесь, что индексы корректны.

А скрин сообщения об ошибке следовало бы сразу приложить к первому посту темы, чтобы не заниматься гаданием.
0
14.11.2018, 10:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2018, 10:38
Помогаю со студенческими работами здесь

Checkbox and RadioButton проверка состояния
Доброго дня, вечера и ночи! Заключительная часть: Возможно ли без прописывания слушателя...

Сохранение состояния Checkbox в Listview
Возникла проблема с сохранением состояния checkbox'ов в Listview. Listview состоит из текста,...

Изменение состояния CheckBox программно
Есть несколько элементов CheckBox (всего порядка 30шт). при обращении к любому хочу сбрасывать...

CheckBox запись состояния в ini
Как записать состояние CheckBox в ini чтобы при повторном запуске программы они сохранили своё...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru