【发布时间】:2017-06-11 10:43:32
【问题描述】:
//the subclass of widget in shared library
class MYWIDGETSHARED_EXPORT MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
void do_something();
};
extern "C"{
MYWIDGETSHARED_EXPORT MyWidget *getMyWidget(){ return new MyWidget;}
}
//the application which will use the shared library
void MainWindow::creatCentralWidget()
{
QTabWidget *tabWidget = new QTabWidget(this);
QLibrary myLib("xxx/MyWidget.dll");
if(myLib.load()){
MyWidget *widget = (MyWidget*)myLib.resolve("getMyWidget");
tabWidget->addTab(widget,"MyWidget");//Here cause crash!
}
//.......do_something()......
}
当我将MyWidget 添加到tabWidget 时,应用程序因代码255 而崩溃。
我已经设置了LIBS,INCLUDEPATH,DEPENDPATH,好像没有问题。
所以我想知道,如何将共享库中的小部件正确嵌入到QTabWidget?谢谢!
【问题讨论】:
-
在类定义中添加 Q_OBJECT
-
对不起,我忘了在这段代码中写“Q_OBJECT”,但它也不起作用。
-
widget的值是多少?
标签: qt shared-libraries qtabwidget