crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QCheckBox
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Steklova Olga Дата 16.2.2012, 9:57
 
Цитата
А как удалить элемент из компоновщика QGridLayout?

Прочитайте help, QGridLayout Class Reference :clapping:
To remove a widget from a layout, call removeWidget(). Calling QWidget::hide() on a widget also effectively removes the widget from the layout until QWidget::show() is called.
Trisch Дата 16.2.2012, 5:02
  А как удалить элемент из компоновщика QGridLayout?
wiz29 Дата 9.2.2012, 14:33
  void QAbstractButton::toggled ( bool checked ) [signal]
TiiL Дата 9.2.2012, 13:56
  да два : галочка в чеке стоит -> рисуем логарифмические оси, галочку убираем рисуем линейные оси, проблема в том что не могу правильно событие(есть галочка - нет галочки) описать.
wiz29 Дата 9.2.2012, 9:45
 
Цитата(TiiL @ 9.2.2012, 10:43) *
Задам вопрос по CheckBox:

как описать действие: если я ставлю галочку в чекбоксе то у меня рисовался один график, а по снятию галочки рисовался предыдущий график?


Графиков всего 2?
TiiL Дата 9.2.2012, 9:43
  Задам вопрос по CheckBox:

как описать действие: если я ставлю галочку в чекбоксе то у меня рисовался один график, а по снятию галочки рисовался предыдущий график?
Алексей1153 Дата 9.2.2012, 7:52
  я считаю это глупостью :) Хотя я тоже в кругу C++ программистов. Но в случае Qt соглашусь насчёт qobject_cast - так как это особенность библиотеки. Хотя, тоже лишнее, в общем-то, в данном случае

PS спорить на эту тему не нужно - это всё равно что спорить с тем, нужно ли ставить "египетские скобки" или "ровные скобки" :D То есть - всего лишь личные предпочтения. Лишь в редких случаях эти касты действительно необходимы
Гость Дата 8.2.2012, 21:53
  П.С. то что предложил в пред предыдущем посте Алексей1153 тоже разновидность каста, только C-style, что в кругу c++ программистов обычно считается фу-фу-фу.
Гость Дата 8.2.2012, 21:51
  Возможно не совсем понял суть задачи , но не проще ли сразу подключать сигнал clicked() к слоту, а кастовать уже sender(), при этом т.к. QCheckBox потомок QObject , вполне можно использовать qobject_cast , который в случае неудачного каста вернет 0 (аля dynamic_cast) и при этом не тянет никаких дополнительных рантаймов кроме Qt.
//Суть идеи :

//-----------------------------
QObject * reciver;
//reciver= ну например this;
    for(int i=1; i<N; i++)
    {

        QString st = QString("D%1=").arg(i+2);

        pCheckBox = new QCheckBox(st);
        gridLayout->addWidget(pCheckBox, i, 0, Qt::AlignTop);
        connect(pCheckBox,SIGNAL(clicked()),reciver,SLOT(on_someCbClicked()));
        
    }
//-----------------------------
void  Foo::on_someCbClicked()
{
  QCheckBox * sender=qobject_cast<QCheckBox*>(sender());
  if(!sender)return;
  // в противном случае искомый чекбокс
}
Алексей1153 Дата 8.2.2012, 6:22
  gridLayout->itemAtPosition(i, 0)
- проверить на 0

pCheckBox
- проверить на 0

и никаких кастов не надо - ты же знаешь, что там чекбоксы

if(gridLayout->itemAtPosition(i, 0))
{
   if(pCheckBox = (QCheckBox*)gridLayout->itemAtPosition(i, 0)->widget())
   {
   }
}
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 19:41