Библиотека Qt и как с ней бороться
Добавлено: 26 янв 2007, 12:55
Работать с ней начал недавно. Штука конечная навороченная, но для меня это как конструктор, где не все детальки подписаны. Тем более, что компилит собственным компилятором, с отладкой проблемы, в кутишные функции при отладки залезть нельзя...ну вообщем не очень удобно.Так вот вопрос - почему-то лагает функция connect , такое ощущение, что сигналы с виджета не отсылаются. вот код-
//.h
#ifndef UNIH_H
#define UNIH_H
#include <qxml.h>
#include <qwidget.h>
#include <qvariant.h>
class QListView;
class QListViewItem;
class UniH : public QWidget, public QXmlDefaultHandler
{
Q_OBJECT
public:
UniH(QWidget *tabw);
//всяческие потроха
//.....
//.....
QListView *listView;
QListViewItem *currentItem;
private:
protected:
QString currentText;
private slots:
void changeItem();
};
#endif
//.cpp
#include "unih.h"
#include <qlistview.h>
#include <mmc.h>
#include <qfile.h>
#include <qmessagebox.h>
UniH::UniH(QWidget *tabw) : QWidget(tabw)
{
listView = new QListView(this);
listView->setCaption("tree");
listView->setRootIsDecorated(true);
listView->setResizeMode(QListView::AllColumns);
listView->addColumn(tr("Terms"));
listView->addColumn(tr("Params"));
listView->setFocus();
currentItem = 0;
//bla bla bla
QObject::connect(listView, SIGNAL(listView->doubleClicked(currentItem)), this, SLOT (changeItem()));
}
void UniH::changeItem(){
QMessageBox::information(this,"",currentItem->text(1));//просто проверяю что сигнал инициирует запуск функции
}
Спасибо за внимание
//.h
#ifndef UNIH_H
#define UNIH_H
#include <qxml.h>
#include <qwidget.h>
#include <qvariant.h>
class QListView;
class QListViewItem;
class UniH : public QWidget, public QXmlDefaultHandler
{
Q_OBJECT
public:
UniH(QWidget *tabw);
//всяческие потроха
//.....
//.....
QListView *listView;
QListViewItem *currentItem;
private:
protected:
QString currentText;
private slots:
void changeItem();
};
#endif
//.cpp
#include "unih.h"
#include <qlistview.h>
#include <mmc.h>
#include <qfile.h>
#include <qmessagebox.h>
UniH::UniH(QWidget *tabw) : QWidget(tabw)
{
listView = new QListView(this);
listView->setCaption("tree");
listView->setRootIsDecorated(true);
listView->setResizeMode(QListView::AllColumns);
listView->addColumn(tr("Terms"));
listView->addColumn(tr("Params"));
listView->setFocus();
currentItem = 0;
//bla bla bla
QObject::connect(listView, SIGNAL(listView->doubleClicked(currentItem)), this, SLOT (changeItem()));
}
void UniH::changeItem(){
QMessageBox::information(this,"",currentItem->text(1));//просто проверяю что сигнал инициирует запуск функции
}
Спасибо за внимание