Size: a a a

2020 June 14

IZ

Ilia Zviagin in Qt
Виктор Яковлев
for (int i = 0; i < ui->tableWidget->rowCount(); i++)
       {
           QWidget *item = ui->tableWidget->cellWidget(i, 1);
           QCheckBox *checkBox = qobject_cast<QCheckBox*>(item->layout()->itemAt(0)->widget());
Результат qobject_cast проверять надо, что он вернул.
Нельзя без оглядки через него обращаться.
источник

IZ

Ilia Zviagin in Qt
Виктор Яковлев
The program has unexpectedly finished.
Ну так это рантайм ошибка, бери отладчик, и отлаживай
источник

ВЯ

Виктор Яковлев... in Qt
так он на нем и вылетает. конкретно на этом -  item->layout()->itemAt(0)->widget()
источник

IZ

Ilia Zviagin in Qt
Ilia Zviagin
Результат qobject_cast проверять надо, что он вернул.
Нельзя без оглядки через него обращаться.
Это
источник

IZ

Ilia Zviagin in Qt
Виктор Яковлев
так он на нем и вылетает. конкретно на этом -  item->layout()->itemAt(0)->widget()
Разбей выражение на части, проверяй результат по шагам
источник

IZ

Ilia Zviagin in Qt
Виктор Яковлев
так он на нем и вылетает. конкретно на этом -  item->layout()->itemAt(0)->widget()
Видимо, тут у тебя неверное обращение к части структуры лейаута
источник

ВЯ

Виктор Яковлев... in Qt
вылетел даже на qDebug()<<item->layout()
источник

IZ

Ilia Zviagin in Qt
Виктор Яковлев
так он на нем и вылетает. конкретно на этом -  item->layout()->itemAt(0)->widget()
Ну и обычно layout не используют для поиска компонент...
источник

IZ

Ilia Zviagin in Qt
Моветон.
источник

IZ

Ilia Zviagin in Qt
Виктор Яковлев
вылетел даже на qDebug()<<item->layout()
Ну так отладчик бери, отлаживай.
источник

ВЯ

Виктор Яковлев... in Qt
Ilia Zviagin
Ну так отладчик бери, отлаживай.
😳 есть быстрый старт по отладчику) я им всего пару раз пользовался... дебага в коде всегда хватало
источник

AS

Anatoly Shirokov in Qt
Виктор Яковлев
😳 есть быстрый старт по отладчику) я им всего пару раз пользовался... дебага в коде всегда хватало
F5
источник

ВЯ

Виктор Яковлев... in Qt
ничего не понял из дебага. Переделал установку чекбокса на такой вариант
источник

ВЯ

Виктор Яковлев... in Qt
QWidget *checkBoxWidget = new QWidget();
         QCheckBox *checkBox = new QCheckBox();      // объявляем и инициализируем чекбокс
         QHBoxLayout *layoutCheckBox = new QHBoxLayout(checkBoxWidget); // создаём слой с привязкой к виджету
         layoutCheckBox->addWidget(checkBox);            // Устанавливаем чекбокс в слой
         layoutCheckBox->setAlignment(Qt::AlignCenter);  // Отцентровываем чекбокс
         layoutCheckBox->setContentsMargins(0,0,0,0);
         checkBox->setChecked(false);
         ui->tableWidget->setCellWidget(i,1, checkBoxWidget);
источник

ВЯ

Виктор Яковлев... in Qt
и всё работает.
источник

SN

Some Name in Qt
Переслано от Some Name
Может есть у кого адекватная реализация SplashScreen'a на android. Я уже все возможные рускоязычные и англоязычные форумы/топики/статьи перерыл

Нигде нет нормально работающего кода, либо я инвалид...

Варианты поведения:

1. Сначала контент сплешскрина находиться под шторкой, а затем она становиться непрозразчной и изображение съезжает на пару пикселей

2. Сплешскрин тупо не показывается 3-4 секунды после запуска приложения, затем показывается и за меньше секунды исчезает

3. Чисто чёрный сплеш сначала, а дальше как в пункте 2

Может как-то можно в xml написать, чтобы прямо при открытии ничего за шторку не заходило?
источник

SN

Some Name in Qt
Переслано от Some Name
И ничего бля не скакало туда-сюда((
источник

ВЯ

Виктор Яковлев... in Qt
Только на кнопку можно нажать один раз.... второй раз нажимаешь и снова всё ломается.  В чём прикол? и ругается снова на qobject_cast главное в первый раз всё норм, а во вотрой уже не хочет.
источник

AS

Anatoly Shirokov in Qt
Виктор Яковлев
Здравствуйте. Помогите разобраться в чём проблема. Есть QTablrWidget заполняю из запроса и добавляю в него QCheckBox for(int i = 0; qry->next(); i++){
         ui->tableWidget->insertRow(i);
         ui->tableWidget->setItem(i,0, new QTableWidgetItem(qry->value(0).toString()));
         // Создаём элемент, который будет выполнять роль чекбокса
         QTableWidgetItem *item = new QTableWidgetItem();
         item->data(Qt::CheckStateRole);
         item->setCheckState(Qt::Unchecked);
         // Устанавливаем чекбокс во вторую колонку
         ui->tableWidget->setItem(i,1, item);
         ui->tableWidget->setItem(i,2, new QTableWidgetItem(qry->value(1).toString()));
   }
Ты помещаешь qtablewidgetitem, а после кастуешь к qcheckbox да еще через какой-то левый layout? Тогда что тебя удивляет? Сам себе злобный буратин.
источник

Е

Егор in Qt
Подскажите что не так с TableView из вторых контролсов? Скопировал код с стаковерфлоу, работает корректно только на фиксированных значениях rowHeightProvider и columnWidthProvider, если поставить значения, зависащие от rows/columns то при ресайзе всё ломается и улетает за границы экрана. Я что-то не так делаю, или это баг? Код отсюда https://stackoverflow.com/questions/55610163/how-to-create-a-tableview-5-12-with-column-headers
Могу проект в архиве скинуть (там еще С++ модель с документации)
Сама проблема в этих строках
 columnWidthProvider: function (column) { return 360; }
// ломается при ресайзе
//   rowHeightProvider: function (column) { return root.height/6; }
rowHeightProvider: function (column) { return 200; }
источник