Название: QTableWidget + checked Отправлено: thechicho от Январь 06, 2012, 22:11 в таблице есть итемы с чекбоксом.
хотел добавить, чтобы они отмечались при нажатии на сам текст итема. connect(ui->tableWidgetBeeline, SIGNAL(itemPressed(QTableWidgetItem*)), this, SLOT(checkedItem(QTableWidgetItem*))); void Mobiler::checkedItem(QTableWidgetItem* item) { if (item->checkState() == 0) item->setCheckState(Qt::Checked); else item->setCheckState(Qt::Unchecked); } но при таком раскладе, если нажимаю на сам чекбокс, то срабатывает коннект, т.е. допустим галочка ставится и одновременно срабатывает стандартный для чекбокса сигнал (или хз чо), т.е. галочка убирается. как можно сделать, чтобы и при нажатии на текст итема, происходило изменение состояния, и при нажатии на сам чекбокс? Название: Re: QTableWidget + checked Отправлено: andrew.k от Январь 07, 2012, 00:26 Что за манера менять стандартное поведение?
По щелчку айтем выделяется. Может использовать это? Но опять же возникают вопросы, при нажатии например стрелок тоже будет меняться выделение. Подозреваю, что в этом случае уже не должен ставиться чекбокс по "задумке". Можно еще посмотреть в сторону currentItem. Но наверное с ним ситуация будет схожа с выделением. Видимо в итоге придется переопределять mousePressEvent и там смотреть куда тыкнул пользователь (itemAt) и решать надо ставить чекбокс или нет. Название: Re: QTableWidget + checked Отправлено: thechicho от Январь 07, 2012, 17:37 // Что за манера менять стандартное поведение?
дак лучше же, когда на текст нажимаешь и чекбокс отмечается, чем выцеливать каждый раз его, чтобы отметить. // По щелчку айтем выделяется. Может использовать это? connect(ui->tableWidgetBeeline, SIGNAL(itemPressed(QTableWidgetItem*)), this, SLOT(checkedItem(QTableWidgetItem*))); // Но опять же возникают вопросы, при нажатии например стрелок тоже будет меняться выделение выделение тут не при делах. чекбоксы будут отмечаться только при нажатии (мышка || пробел) короче, почитал setFlags() выяснил, что на возможность отмечать чекбокс влияет флаг Qt::ItemIsUserCheckable 16 It can be checked or unchecked by the user. просто установил нужные флаги, без него. таким образом, состояние меняется только в слоте, как мне и надо было *fuck yeah* Код
|