The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Qt3 c++ linux проблема с кнопками !"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Qt3 c++ linux проблема с кнопками !"  
Сообщение от remiznik email on 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);
    }              
}

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


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

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Qt3 c++ linux проблема с кнопками !"  
Сообщение от NuINu (??) on 21-Июн-08, 00:19 
>[оверквотинг удален]
>[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);


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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