crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 27.4.2024, 18:59