Написана dll, в которой есть следующая функция:
void GB_2dbuilder::areaPrepare(QWidget *parent)
{
button = new QPushButton(parent);
connect(button,SIGNAL(clicked()),this,SLOT(showmessage()));
button->show();
}
, где showmessage:
void GB_2dbuilder::showmessage()
{
QMessageBox::information(0,"Hello","message raised from library");
}
В функции main используется объект пользовательского класса GBGuiPlugList, наследующий QListView. Есть функция, вызывающая areaPrepare из dll:
void GBGuiPlugList::newSelection(QListWidgetItem *current)
{
if(!area){
QMessageBox::critical(0,"Plugin list.","Output area not set");
}
this->hide();
QString filename = current->whatsThis();
QPluginLoader loader(filename);
QObject *plugin = loader.instance();
if (plugin){
GB_interface *plugface = qobject_cast<GB_interface *>(plugin);
if (plugface){
plugface->areaPrepare(this->area);
}
//delete plugin;
}
}
, где area:
Суть проблемы: button создаётся, но не получается заставить его реагировать на нажатие. Может кто знает как прописать его реакцию в dll?