Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Germiona от Май 15, 2008, 12:27



Название: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Germiona от Май 15, 2008, 12:27
При наведении курсора мыши на кнопку,кнопка должна поменять цвет...Как это можно реализовать?Из сигналов нашла только клик,двойной клик и отпускание мыши. Неужели только через event?


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Vl@domir от Май 15, 2008, 12:42
При наведении курсора мыши на кнопку,кнопка должна поменять цвет...Как это можно реализовать?Из сигналов нашла только клик,двойной клик и отпускание мыши. Неужели только через event?

Тоже только начал осваивать Qt, кроме как через event не вижу как это реализовать


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: chipset от Май 15, 2008, 13:46
можно через css :hover


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Vl@domir от Май 15, 2008, 13:49
можно через css :hover

Вопрос от новичка: А что значит CSS?  :)


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Germiona от Май 15, 2008, 13:56
Цитировать
Вопрос от новичка: А что значит CSS?

CSS -  каскадные таблицы стилей

Цитировать
можно через css :hover

а попроще никак нельзя?  :) не хотелось бы еще CSS вмешивать

Если через event()...
То это получается надо перезаписать медот enterEvent(),но ведь у меня просто кнопка,а не класс....как поймать это событие - наведение мыши на конкретную кнопку?


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: pastor от Май 15, 2008, 14:02
Цитировать
Вопрос от новичка: А что значит CSS?

CSS -  каскадные таблицы стилей

Цитировать
можно через css :hover

а попроще никак нельзя?  :) не хотелось бы еще CSS вмешивать

Если через event()...
То это получается надо перезаписать медот enterEvent(),но ведь у меня просто кнопка,а не класс....как поймать это событие - наведение мыши на конкретную кнопку?

Можно поставить эвент фильтр на эту кнопку и отловить нужное событие.


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Germiona от Май 15, 2008, 15:34
Все получилось через фильтр, спасибо  :)


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: em от Май 15, 2008, 21:14
Все получилось через фильтр, спасибо  :)
to Germiona а можно пожалуйста простенький пример с кнопкой которая меняет цвет? =)


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: chipset от Май 16, 2008, 06:26
можно через css :hover

Вопрос от новичка: А что значит CSS?  :)
ну вот пример, если в  дизайнере на кнопке правой кнопко и change style sheet ..
и там накалякать
:hover{
   background-color: qlineargradient(spread:reflect, x1:0.510526, y1:0.575, x2:0.5, y2:0, stop:0 rgba(18, 18, 18, 255), stop:1 rgba(134, 134, 134, 255));
}

с помощью css можно столько красявостей делать..  ::)


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Germiona от Май 16, 2008, 12:00
Цитировать
to Germiona а можно пожалуйста простенький пример с кнопкой которая меняет цвет? =)


Пожалуйста  :) :

Код:

QPushButton *funcButton = new QPushButton("Функциональные клавиши",this);
funcButton->installEventFilter(this);
...
bool MainWindow::eventFilter(QObject *o, QEvent *e)
{
    if(o == funcButton){
    if(e->type() == QEvent::Enter) {
    funcButton->setPaletteBackgroundColor(Qt::red);
        return true;
    }
    if(e->type() == QEvent::Leave) {
    funcButton->setPaletteBackgroundColor(eraseColor());
        return true;
    }    
   
    }
       
    return QMainWindow::eventFilter(o, e);

}

Примерно так  :)


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Vl@domir от Май 16, 2008, 12:54
Добрый день.
Я хочу Background диалога заполнять определённым рисунком, в Дезайнере для диалога выбираю change styleSheet и устанавливаю рисунок для background-image, НО после этого этот рисунок делается Background'ом для каждого элемента на этом диалоге. Как бы этого избежать?  ???


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: Vl@domir от Май 16, 2008, 13:13
Добрый день.
Я хочу Background диалога заполнять определённым рисунком, в Дезайнере для диалога выбираю change styleSheet и устанавливаю рисунок для background-image, НО после этого этот рисунок делается Background'ом для каждого элемента на этом диалоге. Как бы этого избежать?  ???

Почитал Assistant и нашел ответ.  ::) Вопрос снят.


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: em от Май 16, 2008, 19:15
Germiona, chipset большле спасибо за примеры! =))


Название: Re: Как определить,что курсор мыши попал в область кнопки?
Отправлено: em от Май 18, 2008, 19:12
Кстати css прикольная тема =)