... QWidget*myWidget = new QWidget(); QPushButton*button = new QPushButton("button", myWidget); connect(button,SIGNAL(clicked()),myWidget,SLOT(close())); myWidget->show();...
... QWidget*myWidget = new QWidget(); QPushButton*button = new QPushButton("button", myWidget); connect(button,SIGNAL(clicked()),myWidget,SLOT(close())); mdiArea->addSubWindow(myWidget)->show();...
C++ (Qt)mdiArea->addSubWindow(myWidget)->show();
...connect(button,SIGNAL(clicked()),mdiArea,SLOT(closeActiveSubWindow()));...
#include <QtGui> #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport) #else #define MY_EXPORT #endifextern "C" MY_EXPORT QWidget* run3(){ QWidget* xWidget = new QWidget(); xWidget->setWindowTitle("libWidget"); QPushButton* button = new QPushButton("button", xWidget); QWidget::connect(button, SIGNAL(clicked()),xWidget, SLOT(close())); return xWidget;}
#include "mainwindow.h"#include <QtGui>#include <QLibrary>#include <QDebug>MainWindow::MainWindow(){... loadPlugin = new QAction(this); loadPlugin->setText(QString::fromUtf8("&Загрузить плагин")); connect(loadPlugin,SIGNAL(triggered()),this,SLOT(LoadPlugin())); toolbar->addAction(loadPlugin);...}void MainWindow::LoadPlugin(){ QLibrary xLibrary("/.../libplugin.so"); if(xLibrary.load() == false) qDebug()<<"fuck library dosn't loaded"; typedef QWidget*(*MyWidget)(); MyWidget myWidget = (MyWidget) xLibrary.resolve("run3"); if (myWidget){ mdiArea->addSubWindow(((QWidget*)myWidget()))->show(); } else qDebug()<<"damn problem with function in lib.... shit"; xLibrary.unload();}
...extern "C" MY_EXPORT void run3(QMdiArea* parent){ QWidget* xWidget = new QWidget(); xWidget->setWindowTitle("libWidget"); QPushButton* button = new QPushButton("button", xWidget); QWidget::connect(button, SIGNAL(clicked()),parent, SLOT(closeActiveSubWindow())); parent->addSubWindow(xWidget)->show();}
...typedef void(*MyWidget)(QMdiArea*);MyWidget myWidget = (MyWidget) xLibrary.resolve("run3"); if (myWidget){ myWidget(mdiArea);}...