Russian Qt Forum
Ноябрь 26, 2024, 14:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: объект QCheckBox испускает сигналы и при нажатии и при отжатии  (Прочитано 7470 раз)
helga1917
Гость
« : Август 09, 2013, 11:15 »

У меня на форме есть объект QCheckBox и при нажатии на него надо записать слово в QLineEdit. А сигнал испускается и при нажатии и при отжатии.
и обратная этому задача, чтобы сигнал испускался только при отжатии. как этого добиться?

я перепробовала разные сигналы: clicked(); toggled(bool); pressed(); released(), но результат один и тот же сигнал срабатывает при нажатии/отжатии.

Код:
Window::Window
{
LineEdit = new QLineEdit;
choice = new QCheckBox;
choice->toggle();    //выводится на форму в нажатом состоянии;

connect (choice, SIGNAL (pressed()), this, SLOT (settextLine()));

QGridLayout *Layout = new QGridLayout;
Layout->addWidget(LineEdit,1,1);
Layout->addWidget(choice,1,2);
setLayout(Layout);
}

void Window::settextLine()
{
LineEdit->setText("text");
}

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 09, 2013, 11:16 »

проверяй параметр bool сигнала: true значит чекбокс нажат, false — отжат. надо внимательно читать документацию.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
helga1917
Гость
« Ответ #2 : Август 09, 2013, 11:30 »


если у меня сигнал допустим pressed(), а я отжимаю checkbox,  то он наверно не должен срабатывать, раз передается false? или не так?
Записан
mutineer
Гость
« Ответ #3 : Август 09, 2013, 11:34 »

Не так
clicked(); toggled(bool); pressed(); released() отрабатывают и при включении чекбокса и при выключении
у toggled параметр показывает включение это или выключение. Используй это
Записан
gorec323
Гость
« Ответ #4 : Август 09, 2013, 11:39 »


если у меня сигнал допустим pressed(), а я отжимаю checkbox,  то он наверно не должен срабатывать, раз передается false? или не так?

Должен сработать, у тебя ж кнопка нажимается. Поставь одну обработку и все:

Код:
void Window::settextLine()
{
  if (choice.isChecked())
    LineEdit->setText("text");
}

Ну и тогда вопрос, зачем QCheckBox использовать для записи?
Записан
helga1917
Гость
« Ответ #5 : Август 09, 2013, 11:46 »

Спасибо!
 посылать текст это для примера, а так мне надо сделать фильтр, который при нажатии фильтрует, а при отжатии нет
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.