crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QList не "переносится" из плагина
gigabyte
  опции профиля:
сообщение 9.8.2009, 21:47
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 9.8.2009
Пользователь №: 992

Спасибо сказали: 2 раз(а)




Репутация:   1  


Здравствуйте уважаемые знатоки. Опять же о тонкостях Qt(MinGW + Qt 4.5.1 + Eclipse + Qt Integration)
До этого момента использовал Qt plugin непосредственно т.е. QPluginLoader->instance() теперь же использую для создания компонентов фабрику т.е.
WidgetFactory = QPluginLoader->instance();
WidgetFactory->newInstance()

Но тут появилась проблема, до того как перешел на использование фабрики в класс выглядел следующим образом:
class tableview : public QTableView, public ViewInterface
{
    Q_OBJECT
    Q_INTERFACES(ViewInterface)
public:
    tableview(QWidget *parent = 0);
    ~tableview();

    void setPluginParameters(QMap<QString,QVariant> params);
    QString getViewName() const;
    QString getViewDesc() const;

    /*Commands for passing SQL and other data*/
    QVariant* getViewCmd() const;
    void setViewCmd(const QVariant *viewCmd);
    QWidget* acquireWidget() const;

    /*Universal UI commands*/
    void uiButtons(QList<int> btns);
//    QList<int>* uiButtons() const;
    bool invoke_uiButton(int btn) const;
private slots:
    void filterBtnClicked(int logicalIndex);
private:
    TVtableheader * header;
    QVariant * cmd;
    QSqlDatabase *db;
    CoreInterface *Core;
    QList<int>* uiBtns;
    void getCaptions();
    void translateModel();
    QMap<QString,QString> *Captions;
    QString *view;
    QSqlQueryModel *model;

};

обратите внимание на метод void uiButtons(QList<int> btns); - метод интерфейса ViewInterface.
Значит до использования фабрики этот метод работал нормально - т.е. возвращал Список идентификаторов кнопок которые следует отображать,
сейчас же он возвращает пустой список.
В чем может быть проблема?
P.S. Как видите раньше использовалась функция возвращающая указатель на список но сейчас заменил на процедуру так как думал что проблема в указателях. Но этот трюк также не проходит
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 9.8.2009, 21:53
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Тут дело не в Qt, а в C++. Почитай по поводу ссылок.
void uiButtons(QList<int>& btns);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 8:37