Qt dll带界面的问题

gucunlin 2012-11-05 04:59:37
extern "C" SVGDATA_DLLSHARED_EXPORT bool GetSvgFileStream(QByteArray * data,QWidget *from)
{
Qmydialog *dialog = new Qmydialog(...);
dialog.exec();
}
就这一样接口,Qmydialog是丛Qdialog中既承下来的
现在的问题是,界面正常显示,单是击一点击事件就报错,报告是内存错误。不知道怎么回事?无论使用connect还在在ui中直接关联都错,请问是怎么回事? 有例子更好了。gucunlinb@163.com
...全文
415 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gucunlin 2012-11-07
  • 打赏
  • 举报
回复
问题解决了,谢谢大家关心。我说说解决过程 事件错全部上就是执行到ui->...访问ui控件的语句出错的。调试修改无果。后来只能重建项目将代码移植到新的Dialog中没有问题。就这样解决了。具体那里错了还是未知。可能是修改的地方太多了。
gucunlin 2012-11-06
  • 打赏
  • 举报
回复
引用 3 楼 yiyaaixuexi 的回复:
LZ可否解释你调用 dialog.exec(); 的用意是什么 ? 首先你这不是指针么? C/C++ code 12 Qmydialog *dialog = new Qmydialog(...); dialog.exec(); 当然,重点是,exec将启动Qt循环事件,监听行为,通常一个应用程序启动一个事件循环,在main函数中: ……
回版主 dialog->exec(),上面的是手误.问题是我在Dll中封装的界面调用show()要么一闪就过了,要么就是出错。才用exec的。其中Qmydialog里面做了很多工作,有Qlistview,QLabel等控件和相关事件,其中QLabel使用的QMyLabel丛QLabel中既承的类增加了单击和双击事件。几十个Qmylabel是动态创建显示图片的。大致就是这样。界面能正常显示出来,一单击listview控件触发Click事件就出错。其它事件还没有机会试.
烂番 2012-11-06
  • 打赏
  • 举报
回复
跟dll没有太大关系,你还是调试下单击时会执行的代码吧
gucunlin 2012-11-05
  • 打赏
  • 举报
回复
这是个dll当然没有主界面在一起的,这是给别人调用的,exec不是有自己的消息循环吗,才这样用的。关键是界面能出来,里面的事件一点就报错。
乔巴好萌 2012-11-05
  • 打赏
  • 举报
回复
你看下创建的这个位置的线程ID和主界面的线程ID是否一致 对于QT GUI来说 只能有一个界面线程
念茜 2012-11-05
  • 打赏
  • 举报
回复
LZ可否解释你调用 dialog.exec(); 的用意是什么 ? 首先你这不是指针么?
    Qmydialog *dialog = new Qmydialog(...);
    dialog.exec();
当然,重点是,exec将启动Qt循环事件,监听行为,通常一个应用程序启动一个事件循环,在main函数中:
QApplication a(argc,argv);
//do something 
return a.exec();
如果展示一个dialog, 调用
dialog->show();
gucunlin 2012-11-05
  • 打赏
  • 举报
回复
什么意思?能讲清楚些吗》
  • 打赏
  • 举报
回复
看出错时候的调用栈吧

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧