The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Qt3 c++ linux проблема с кнопками !, !*! remiznik, 20-Июн-08, 20:33  [смотреть все]
большая программа но в ней есть трудности
суть программы которую пишу ! создаю кнопки и надо чтоб при нажатии на них выскакивало диалоговое окно ColorDialog в котором выбирали нужный цвет и в последствии этот цвет становился фоновым для кнопки которая вызвала диалог ! немогу никак разобраться как отловить какая кнопка из массива кнопок вызвана !! вот пример кода !

вот массив галочек и кнопок !!! тут же и соединение с сигналом вызывавшим диалоговое окно !
[code=cpp]
for (i=0; i<8; i++)
  {
    CB[i] = new QCheckBox( this, "CB" );
    CB[i]->setGeometry( QRect( 10+i*40, 15, 40, 20 ) );
    CBB[i]=new QPushButton(" ",BoxChecker);
    CBB[i]->setFlat(true);
    CBB[i]->setGeometry(10+i*40, 35, 13, 13);
        connect(CBB[i],SIGNAL(clicked()),
                    SLOT(slotGetColor()));

   }

вот сам слот

void CheckForm::slotGetColor()
{
    QColor color=QColorDialog::getColor(blue,this);
     if(!color.isValid())
    {
    }
    else // при нажатии ОК здесь должен сменится цвет кнопки !
    {  
             if(CBB[1]->isOn())
              CBB[1]->setPaletteBackgroundColor(color);
    }              
}

трудность в том не понимаю как из масива событий поймать нажатую кнопку !


если надо могу кинуть полный исходник программы вызывавшей чекбокс с кнопками !

  • Qt3 c++ linux проблема с кнопками !, !*! NuINu, 00:19 , 21-Июн-08 (1)
    >[оверквотинг удален]
    >[code=cpp]
    >for (i=0; i<8; i++)
    >  {
    >    CB[i] = new QCheckBox( this, "CB" );
    >    CB[i]->setGeometry( QRect( 10+i*40, 15, 40, 20 ) );
    >    CBB[i]=new QPushButton(" ",BoxChecker);
    >    CBB[i]->setFlat(true);
    >    CBB[i]->setGeometry(10+i*40, 35, 13, 13);
    >        connect(CBB[i],SIGNAL(clicked()),
    >        SLOT(slotGetColor()));

    Вот это вот не правильно!!!! так соединять можно, только если СЛОТ содержиться в классе из которого производиться соединение, а судя по коду, этот слот slotGetColor у тебя находиться в форме.

    в общем методика проста:
    создаешь класс
    наследумемый от QPushButton какой нибудь, SelfChangeColor
    в нем определяешь свой слот slotGetColor.
    создаешь уже кнопки этого класса. а далее уже в обработчике
    пишешь:
    self.setPaletteBackgroundColor(color);


    • Qt3 c++ linux проблема с кнопками !, !*! remiznik, 15:40 , 21-Июн-08 (2)
      >[оверквотинг удален]
      >в классе из которого производиться соединение, а судя по коду, этот
      >слот slotGetColor у тебя находиться в форме.
      >
      >в общем методика проста:
      >создаешь класс
      >наследумемый от QPushButton какой нибудь, SelfChangeColor
      >в нем определяешь свой слот slotGetColor.
      >создаешь уже кнопки этого класса. а далее уже в обработчике
      >пишешь:
      >self.setPaletteBackgroundColor(color);

      у меня слот определён в форме из которой вызывается инармально вызывается проблема в том что я незнаю как опеределить какая кнопка шёлкнула из 8 !




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру