QCheckBox |
Здравствуйте, гость ( Вход | Регистрация )
QCheckBox |
Trisch |
6.2.2012, 20:26
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
У меня создаются элементы класс QCheckBox вот таким вот образом:
Можно ли определить какой из них включен, а какой нет? И как можно их удалить, желательно, начиная с последнего созданного? |
|
|
Homer_J_SimpsoN |
6.2.2012, 20:32
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 5.2.2012 Пользователь №: 3203 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня создаются элементы класс QCheckBox вот таким вот образом:
Можно ли определить какой из них включен, а какой нет? И как можно их удалить, желательно, начиная с последнего созданного? Собственно, документация) Цитата QLayoutItem * QGridLayout::itemAtPosition ( int row, int column ) const Returns the layout item that occupies cell (row, column), or 0 if the cell is empty. This function was introduced in Qt 4.4. Далее так) Цитата QWidget * QLayoutItem::widget () [virtual] If this item is a QWidget, it is returned as a QWidget; otherwise 0 is returned. This function provides type-safe casting. Соответственно у Вас есть элемент из сетки, у Вас есть тип этого элемента =) Приводите его к этому типу, наверное static_cast<>() хватит) И далее узнаете, что там, да как) Я это себе так представляю. |
|
|
Trisch |
7.2.2012, 22:49
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
Попробовал как написано выше, то-есть так:
но программа "неожиданно" завершается((( |
|
|
Алексей1153 |
8.2.2012, 6:22
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
gridLayout->itemAtPosition(i, 0)
- проверить на 0 pCheckBox - проверить на 0 и никаких кастов не надо - ты же знаешь, что там чекбоксы
Сообщение отредактировал Алексей1153 - 8.2.2012, 6:24 |
|
|
Гость_Гость_* |
8.2.2012, 21:51
Сообщение
#5
|
Гости |
Возможно не совсем понял суть задачи , но не проще ли сразу подключать сигнал clicked() к слоту, а кастовать уже sender(), при этом т.к. QCheckBox потомок QObject , вполне можно использовать qobject_cast , который в случае неудачного каста вернет 0 (аля dynamic_cast) и при этом не тянет никаких дополнительных рантаймов кроме Qt.
|
|
|
Гость_Гость_* |
8.2.2012, 21:53
Сообщение
#6
|
Гости |
П.С. то что предложил в пред предыдущем посте Алексей1153 тоже разновидность каста, только C-style, что в кругу c++ программистов обычно считается фу-фу-фу.
|
|
|
Алексей1153 |
9.2.2012, 7:52
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
я считаю это глупостью Хотя я тоже в кругу C++ программистов. Но в случае Qt соглашусь насчёт qobject_cast - так как это особенность библиотеки. Хотя, тоже лишнее, в общем-то, в данном случае
PS спорить на эту тему не нужно - это всё равно что спорить с тем, нужно ли ставить "египетские скобки" или "ровные скобки" То есть - всего лишь личные предпочтения. Лишь в редких случаях эти касты действительно необходимы Сообщение отредактировал Алексей1153 - 9.2.2012, 7:57 |
|
|
TiiL |
9.2.2012, 9:43
Сообщение
#8
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
Задам вопрос по CheckBox:
как описать действие: если я ставлю галочку в чекбоксе то у меня рисовался один график, а по снятию галочки рисовался предыдущий график? |
|
|
wiz29 |
9.2.2012, 9:45
Сообщение
#9
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
|
|
|
TiiL |
9.2.2012, 13:56
Сообщение
#10
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
да два : галочка в чеке стоит -> рисуем логарифмические оси, галочку убираем рисуем линейные оси, проблема в том что не могу правильно событие(есть галочка - нет галочки) описать.
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 7:40 |