Название: Подскажите, как лучше сделать обработку кнопок? Отправлено: Skala от Февраль 15, 2007, 11:13 Нужно сделать несколько однотипных кнопок, отличающихся не только названием, но и дополнительной строчкой
Цитировать class Strings : public QPushButton (кстати, код не проверял, пишу на совсем виндовой машине) - Можно было бы сделать через QComboBox и в списке строку commands записать через userData, но мне нужны именно кнопки.{ Q_OBJECT public: Strings(const QString & text, QWidget * parent, Qstring & commands); private: QString commands; }; Strings::Strings(const QString & text, QWidget * parent, Qstring & commands) : QPushButton (text,parent) { this->commands = commands; } И теперь думаю, как организовать обработку кнопок: Кнопок будет шесть, делать их членами класса окна, на которые их помещаю, не хочется - в момент создания окна делаю Цитировать QGroupBox *stringsGroup = new QButtonGroup(tr("Strings")); Strings *str1 = new Strings("&1 Vriant",this,"some commands"); stringsGroup->addButton(str1,1);//id layout->addWidget(stringsGroup, 2, 0); И теперь вопрос: как лучше сделать обработку кнопок- 1) Eсли через слоты, то нужно знать объект sender, что бы от него попросить commands - Как это сделать? 2) Если через обработку нажатия кнопки, то нужно иметь доступ к процедурам/данным родителя - тоже непонятно - это всех передружить надо? :?: Название: Подскажите, как лучше сделать обработку кнопок? Отправлено: Alex Custov от Февраль 15, 2007, 11:35 Код:
? Название: Подскажите, как лучше сделать обработку кнопок? Отправлено: Skala от Февраль 15, 2007, 11:54 Спасибо!
Только я пока не понял: Один str ставитс несколько кнопок и они будут видны? Читая код, полагаю, что да. Позже проверю. Еще раз - огромное Спасибо за помощь! Название: Подскажите, как лучше сделать обработку кнопок? Отправлено: Alex Custov от Февраль 15, 2007, 12:12 Цитата: "Skala" Спасибо! Только я пока не понял: Один str ставитс несколько кнопок и они будут видны? Изучайте С++ ;) Главное, что вы создаёте новые объекты. Где будут храниться указатели на них в данном примере не важно, поэтому можно юзать один локальный указатель. |