Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ещё кутявый глюк: No such signal QListBox::selected()  (Прочитано 10632 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chuda
Гость
« : 29-05-2006 17:11 » 

во всех мануалах написано, что есть у класса QListBox сигнал selected().
Я пишу:
Код:
QObject::connect(MeasureList, SIGNAL(selected()), this, SLOT(entrySelect()));

И программа даже компилится, но при выполнении сигнал со слотом не коннектятся, функция не выполняется, и в консоль идёт такая ругань:
Код:
QObject::connect: No such signal QListBox::selected()
QObject::connect:  (sender name:   'unnamed')
QObject::connect:  (receiver name: 'unnamed')

что бы это значило?
« Последнее редактирование: 15-12-2007 16:38 от Алексей1153++ » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 29-05-2006 19:42 » 

Chuda, может объект - источник сигнала - не существует?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #2 : 29-05-2006 20:22 » 

хм...
да вроде должен.
вот объявление класса:
Код:
class ELMainWindow : public QMainWindow
{
Q_OBJECT
public:
ELMainWindow();
~ELMainWindow();
void readSettings();
void writeSettings();
QListBox * MeasureList;
....
QLabel * ParmLabel; QStringList * currentMeasure;
public slots:
void entrySelect();
protected:
void closeEvent(QCloseEvent *event);
};

а вот конструктор класса:
Код:
ELMainWindow::ELMainWindow()
 : QMainWindow()
{
setCaption(QObject::tr("bkn"));
setMinimumSize(400,200);
setBackgroundColor(0xffffff);
readSettings();

QHBoxLayout * mainhbx = new QHBoxLayout(this);
QVBoxLayout * mainvbx = new QVBoxLayout();
QGridLayout * parmgrid = new QGridLayout(this,6,2,5,5);

MeasureList = new QListBox(this);
MeasureList->resize(300,height());
currentMeasure = new QStringList();
....
DB = new DBWork();
if(DB->IFRead() > 0){
try{
MeasureList->insertStringList(*DB->IndexList);
}catch(...){
MeasureList->insertItem(tr("no entries"));
}
}else{
MeasureList->insertItem(tr("no entries"));
}

QObject::connect(MeasureList, SIGNAL(selected()), this, SLOT(entrySelect()));
}

или я опять что-то не так понимяу?
Записан
Chuda
Гость
« Ответ #3 : 31-05-2006 18:37 » 

Ну я и тормоз!!!!
Код:
$man 3 QListBox
...
  Signals...
       void selected ( int index )
       void selected ( const QString & )
       void selected ( QListBoxItem * )
...
и всего-то!
вот работающий вариант:
Код:
QObject::connect(MeasureList, SIGNAL(selected(int)), this, SLOT(entrySelect(int)));
Ошибка глупая, синтаксическая, не стоящая внимания крутых кодеров, но вдруг тут окажутся дураки типа меня, может им поможет.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 31-05-2006 19:03 » 

Chuda, ответ, как всегда, был на поверхности ж)

Сомневаюсь, что тут есть спецы по Qt. Применение для винды - редкость, а под *nix-ы программистов много меньше. Десктоп *nix-ов - вообще редкость.
Я сам баловался Qt года три назад и с тех пор не притрагивался. Только по памяти отвечаю.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #5 : 18-07-2006 23:13 » new

кстати, как десктоп Linux вне конкуренции. Mac и Windows отдыхают. Это так, в порядке оффтопика. Столь же красивого и удобного десктопа нет больше нигде. Windows разве что количеством приложений выигрывает. А преимущества Мака вообще назвать затрудняюсь. Другие же системы можно в расчёт не брать даже.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines