Нужно сделать несколько однотипных кнопок, отличающихся не только названием, но и дополнительной строчкой
class Strings : public QPushButton
{
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;
}
(кстати, код не проверял, пишу на совсем виндовой машине) - Можно было бы сделать через QComboBox и в списке строку
commands записать через
userData, но мне нужны именно кнопки.
И теперь думаю, как организовать обработку кнопок: Кнопок будет шесть, делать их членами класса окна, на которые их помещаю, не хочется - в момент создания окна делаю
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) Если через обработку нажатия кнопки, то нужно иметь доступ к процедурам/данным родителя - тоже непонятно - это всех передружить надо? :?: