Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Доступ к основному окну из плагина
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
exmagistr
Всем доброго времени суток!
Хочу написать приложение, расширяемое плагинами, в том числе дать доступ плагинам к элементам интерфейса основного окна, например к элементам ввода, меню и т.п. Во время выполнения, в момент вызова метода плагина, программа валится с ошибкой.
Для тестового примера:
Метод плагина:
void Plugin::writeString(MainWindow* win)
{
    win->getEditor()->setText("Hello!");
}

где win->getEditor() возвращает указатель на элемент QLineEdit основного окна MainWindow. Текст ошибки:
symbol lookup error: /home/proffa/qt/testplugin/bin/plugin/libplugin.so: undefined symbol: _ZN10MainWindow9getEditorEv

Кто нибудь может подсказать, что не так сделано, и возможно ли вообще реализовать подобную идею? Может как-нидь по другому, не через плагины? Заранее спасибо.
P.S.: работаю под Ubuntu 9.04, Qt 4.5.1, исходники тестового примера прилагаются

Цитата(exmagistr @ 30.6.2009, 13:41) *
исходники тестового примера прилагаются

не прилагаются :(
выложил здесь: http://narod.ru/disk/10435014000/testplugin.zip.html
SABROG
Тут похоже есть какая-то зависимость методов классов с vtable, т.к. при доступе к публичным переменным класса MainWindow плагин компилится нормально.
BRE
Добавь в файл проекта самой программы:
QMAKE_LFLAGS += -Wl,-export-dynamic
SABROG
Вот так объяви метод и всё будет работать:

    virtual QLineEdit* getEditor();
exmagistr
Спасибо за быстрое наставление на путь истинный :)
P.S.: для информации - этот вопрос также обсуждается
здесь
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.