Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Учебное пособие
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
CyMpak
Начал проделывать примеры из учебного пособия для систематизации знаний, а то в голове что-то близкое к манной каше. Наткнулся на камень преткновенья в 5-ой главе, не сделал дз.

Для начала вот это поставило в тупик:
>>Также Вы можете добавить 4 кнопки определяющие какое либо число отображаемое виджетом lcd и выставляемое ползунком.

Понимаю, что по щелчку кнопка отдает сигнал который можно привязать к какому-то слоту скролла. Но просмотрев документацию, подходящего мне не нашел. Дальше, естесственно, пошел влоб: решил наследовать слот виджета слотом, выставляющим нужное число (число жестко вшивается в сам слот). А потом прочитал, что кнопок надо 3 и стало совсем не весело. Если на каждую отдельный слот создавать, то интерфейс бесчеловечный получается.

Либо еще мысль была между кнопкой и слотом посредника добавить, но тут реализацию не придумывал.

По идее это пошаговое учебное пособие, так что ничего сверхъестественного не должно быть. Поэтому и прошу объяснить мне, где именно я дурак?
Litkevich Yuriy
Цитата(CyMpak @ 1.8.2008, 0:18) *
привязать к какому-то слоту скролла

что за скролл?
void*
что-то типа такого имелось ввиду?
/*интерфейс твоего класса*/
public:
          конструктор() {
                                btn10 = new QPushButton("10");
                                btn20 = new QPushButton("20");
                                btn30 = new QPushButton("30");
                                btn40 = new QPushButton("40");
                                connect(btn10, SIGNAL(clicked()), this, SLOT(buttonClicked()));
                                connect(btn20, SIGNAL(clicked()), this, SLOT(buttonClicked()));
                                connect(btn30, SIGNAL(clicked()), this, SLOT(buttonClicked()));
                                connect(btn40, SIGNAL(clicked()), this, SLOT(buttonClicked()));
          }
private:
          QPushButton *btn10;
          QPushButton *btn20;
          QPushButton *btn30;
          QPushButton *btn40;
public slots:
          void buttonClicked() {
                  if(sender()->text() == "10") //выставить lcd и slider'у значение 10
                  else if(sender()->text() == "20") //аналогично и т.д.
          }
Litkevich Yuriy
Вообще в этом уроке поидее свои сигналы и слоты создавть нельзя, т.к. в учебном материале они еще не рассматривались.
(Это называется россияйская система образования) Но мне пока в голову ничего неприходит как это можно чужими слотами и сигналами реализовать, так что тутор так себе составлен.
Novak
*Рука сразу потянулась почему-то к оригинальной документации.
А там написано
Цитата
Try changing the LCD number to add more digits or to change mode (QLCDNumber::setMode()). You can even add four push buttons to set the number base.
You can also change the slider's range.

Тобишь нужно добавить четыре кнопки для выбора основания системы счисления (привет калькулятору с его hex oct bin dec). А также можно изменить диапазон значений, да и даже нужно при изменении основания.
Litkevich Yuriy
Novak, спасибо, надо исправить перевод.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.