powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / [QT] доступ к родителю
7 сообщений из 7, страница 1 из 1
[QT] доступ к родителю
    #38848434
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть следующий класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class myrequest: public QObject
{
    Q_OBJECT
public:
    int ver,maxver;
    QString shortname;
    QString gamename;
    QString path;
    QPushButton *bt;  // все внимание к этой кнопке
...
}


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


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


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



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

может где то что то упустил,просто для форума код переделал, потому что у меня массив из объектов myrequest и каждого своя кнопка.но суть та же. как достучаться к родителю кнопки, именно к объекту myrequest и его свойствам
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848436
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут
Картежникклик по кнопке bt в объекте myrequest соединяю со следующей функцию
Код: plaintext
1.
2.
3.
void MainWindow::on_games_icon_clicked(){
qDebug()<<"games_icon_clicked "<<myrequest(this->parent()).shortname ;
}



а именно в
Код: plaintext
1.
myrequest(this->parent()).shortname ;


this я так понял скорее всего будет MainWindow а не кнопка bt с которой ее связали, как здесь обратиться к кнопке bt?
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848439
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или как соединить сигнал clicked() кнопки со слотов on_games_icon_clicked() так чтобы хотя бы передать через нее номер объекта myrequest, потому что у меня используется QList из myrequest.
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848456
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к кнопке достучался
Код: plaintext
1.
QPushButton *qbt=(QPushButton*)sender();


а как теперь к ее родителю
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848518
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
qDebug()<<"games_icon_clicked "<<(qbt->parent())->objectName();


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

получается что родитель(parent) все таки страница в gridLayout_2
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848540
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, но
Код: plaintext
1.
qDebug()<<"games_icon_clicked "<<qbt->objectName();


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

т.е. у кнопки нет имени получается?
...
Рейтинг: 0 / 0
[QT] доступ к родителю
    #38848551
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось, пошел в обход,для каждой кнопки задаю индекс
Код: plaintext
1.
mrs->games[i]->bt->setProperty("index",i);


а затем обращаюсь к родителю через него
Код: plaintext
1.
qDebug()<<mrs->games[sender()->property("index").toInt()]->shortname;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / [QT] доступ к родителю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]