Russian Qt Forum
Сентябрь 21, 2024, 09:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: connectSlotsByName  (Прочитано 5075 раз)
Alp
Гость
« : Сентябрь 08, 2010, 18:45 »

Есть виджет нарисованный в дизайнере и на него вдобаво ко всему кладется еще один виджет ,но уже кодом.
Хочется поменьше телодвижений и единообразия привязки сигнал-слотов, потому реализую слот
Код
C++ (Qt)
on_caption_edited(QString)
в виджете есть сигнал
Код
C++ (Qt)
edited(QString)
При вызове в конструкторе QMetaObject::connectSlotsByName(this) получаю:
Код
C++ (Qt)
QMetaObject::connectSlotsByName: No matching signal for on_caption_edited(QString)

Код
C++ (Qt)
namespace Ui { class GroupForm; }
 
class     QEditLabel;
 
class QGroup : public QFrame
{
   Q_OBJECT
 
   QEditLabel*     caption;    //Has signal edited(QString)
 
   Ui::GroupForm*  ui;
   void on_caption_edited(QString) { do the blah! }
};
 
QGroup::QGroup(QWidget *parent) :
   QFrame(parent),
   ui(new Ui::GroupForm)
{
   ui->setupUi(this);
 
   QMetaObject::connectSlotsByName(this);   //Oops! No matching signal!
}
 
Записан
Alp
Гость
« Ответ #1 : Сентябрь 08, 2010, 18:47 »

Да, нарисовать этот сабвиджет в дизайнере же и запромоутить его не могу - нарисованный виджет должен иметь базовый лайаут внутри себя, а мой виджет не должен принадлежать этом лайауту. Т.е. как бы лежать над ним (или под ним), позиционирую я его сам.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Сентябрь 08, 2010, 23:37 »

нужно чтобы "caption" было именем объекта. Т.к. метаобъектная система - система времени выполнения.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.306 секунд. Запросов: 22.