Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Обработчик кнопок на Qt  (Прочитано 2996 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DoublePain

  • Автор темы
  • Активист
  • *
  • Сообщений: 574
    • Просмотр профиля
Обработчик кнопок на Qt
« : 04 Декабрь 2011, 06:10:08 »
Вообщем, допустим есть несколько кнопок, как сделать функцию обработки нажатий по ним мышкой?
Мне надо получить имя нажатой кнопки и через switch уже выбрать нужное действие.
pain projection
Athlon II 620 x4 2.66GHz,4gb,Radeon HD4670 + Ubuntu 12.04 x64
Получено 2 845 kБ за 4с (666 kБ/c)

Axa-Ru

  • Гость

morric

  • Гость
Re: Обработчик кнопок на Qt
« Ответ #2 : 04 Декабрь 2011, 13:04:21 »
Меня тоже интересует вопрос.Можно ли что-то на русском языке?

Axa-Ru

  • Гость
Re: Обработчик кнопок на Qt
« Ответ #3 : 04 Декабрь 2011, 14:07:58 »
Ищите книгу "QT4 Программирование GUI на С++.2ed.2008"

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Обработчик кнопок на Qt
« Ответ #4 : 04 Декабрь 2011, 17:13:44 »
Мне надо получить имя нажатой кнопки и через switch уже выбрать нужное действие.
Код: (c++) [Выделить]
QPushButton *btn1 = new QPushButton(this);
btn1->setAccessibleName("btn1");
connect(btn1,SIGNAL(clicked()),this,SLOT(btnClicked()));

void MyClass::btnClicked()
{
    QPushButton *btn = qobject_cast<QPushButton *>(sender());
    qDebug()<<btn->accessibleName(); // write "btn1"
}
Оно?
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Обработчик кнопок на Qt
« Ответ #5 : 04 Декабрь 2011, 21:23:17 »
Что-то мне подсказывает, что то, что хочет ТС, совсем не Qt-Style. Скорее похоже на Swing, там это практически единственный способ обработать нажатия от нескольких кнопок. Создается объект класса, наследующего интерфейс ActionListener, связывается с каждой кнопкой, и при возникновении события ActionEvent он выбирает действие соответствующее нажатой кнопке по имени.
Что мешает в Qt повесить на каждую кнопку свой обработчик?

Axa-Ru

  • Гость
Re: Обработчик кнопок на Qt
« Ответ #6 : 04 Декабрь 2011, 22:21:47 »
Что мне в таких топиках нравится, то как ТС сделал вброс с минимумом информации и либо свалил, либо анонимно развлекается.
А тут предположения, программные тексты, мысли всякие, что имел ввиду ТС.
Что то мне подсказывает, что ТС хочет, чтоб за него ему программу написали.

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Обработчик кнопок на Qt
« Ответ #7 : 04 Декабрь 2011, 22:40:40 »
Что мешает в Qt повесить на каждую кнопку свой обработчик?
Быдлокод?
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Обработчик кнопок на Qt
« Ответ #8 : 04 Декабрь 2011, 23:56:04 »
Быдлокод?
Вы предлагаете свалить в одну функцию весь код, отвечающий за обработку нажатий кнопок? А если на форме полтора десятка кнопок, то мне что, разбираться потом в функции на тысячу строк?

Онлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5215
  • Все по палатам!
    • Просмотр профиля
Re: Обработчик кнопок на Qt
« Ответ #9 : 05 Декабрь 2011, 00:02:06 »
Быдлокод?
Это же не обработка событий на каждый пиксел окна... ;)
Извините, я все еще учусь

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Обработчик кнопок на Qt
« Ответ #10 : 05 Декабрь 2011, 01:45:38 »
Быдлокод?
Вы предлагаете свалить в одну функцию весь код, отвечающий за обработку нажатий кнопок? А если на форме полтора десятка кнопок, то мне что, разбираться потом в функции на тысячу строк?
У меня в одной проге было больше 100 кнопок.
Через связку findChildren и accessibleName все нормально разруливается.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн DoublePain

  • Автор темы
  • Активист
  • *
  • Сообщений: 574
    • Просмотр профиля
Re: Обработчик кнопок на Qt
« Ответ #11 : 06 Декабрь 2011, 18:55:02 »
Да мне просто надо сделать добавление чисел на циферблат калькулятора. Жмёшь 1 - 1 добавляется на экран и т.д.
В Делфи было проще с обработчиком на все кнопки, тут я не знаю как сделать.
pain projection
Athlon II 620 x4 2.66GHz,4gb,Radeon HD4670 + Ubuntu 12.04 x64
Получено 2 845 kБ за 4с (666 kБ/c)

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Обработчик кнопок на Qt
« Ответ #12 : 06 Декабрь 2011, 23:54:20 »
Смотрите пример калькулятор  ;)
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

 

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