[QT] доступ к родителю

Картежник
Дата: 05.01.2015 14:07:33
есть следующий класс
class myrequest: public QObject
{
    Q_OBJECT
public:
    int ver,maxver;
    QString shortname;
    QString gamename;
    QString path;
    QPushButton *bt;  // все внимание к этой кнопке
...
}

затем есть следующий конструктор
myrequest::myrequest(QObject *parent):    QObject(parent)
{
    ver=0;
    gamename="";
    bt=new QPushButton();
}

после того как создаю объект myrequest с кнопкой bt делаю следующее
 myobject->shortname="hello";
 ui->gridLayout_2->addWidget(myobject->bt,10,10);//вот здесь кнопка появляется в gridLayout_2, теперь кто родитель кнопки bt?

клик по кнопке bt в объекте myrequest соединяю со следующей функцию
void MainWindow::on_games_icon_clicked(){
qDebug()<<"games_icon_clicked "<<myrequest(this->parent()).shortname ;
}


результат типа такого:
games_icon_clicked " "

может где то что то упустил,просто для форума код переделал, потому что у меня массив из объектов myrequest и каждого своя кнопка.но суть та же. как достучаться к родителю кнопки, именно к объекту myrequest и его свойствам
Картежник
Дата: 05.01.2015 14:10:09
вот тут
Картежник
клик по кнопке bt в объекте myrequest соединяю со следующей функцию
void MainWindow::on_games_icon_clicked(){
qDebug()<<"games_icon_clicked "<<myrequest(this->parent()).shortname ;
}


а именно в
myrequest(this->parent()).shortname ;

this я так понял скорее всего будет MainWindow а не кнопка bt с которой ее связали, как здесь обратиться к кнопке bt?
Картежник
Дата: 05.01.2015 14:20:21
или как соединить сигнал clicked() кнопки со слотов on_games_icon_clicked() так чтобы хотя бы передать через нее номер объекта myrequest, потому что у меня используется QList из myrequest.
Картежник
Дата: 05.01.2015 14:52:44
к кнопке достучался
QPushButton *qbt=(QPushButton*)sender();

а как теперь к ее родителю
Картежник
Дата: 05.01.2015 16:42:03
qDebug()<<"games_icon_clicked "<<(qbt->parent())->objectName();

выводит следующий результат:
games_icon_clicked "page"

получается что родитель(parent) все таки страница в gridLayout_2
Картежник
Дата: 05.01.2015 17:14:48
странно, но
qDebug()<<"games_icon_clicked "<<qbt->objectName();

показывает следующий результат:
games_icon_clicked ""

т.е. у кнопки нет имени получается?
Картежник
Дата: 05.01.2015 17:35:31
получилось, пошел в обход,для каждой кнопки задаю индекс
mrs->games[i]->bt->setProperty("index",i);

а затем обращаюсь к родителю через него
qDebug()<<mrs->games[sender()->property("index").toInt()]->shortname;