QT5.0.2出现Cannot create accessible interface for object:解决办法

2013年5月8日 由 Creater 留言 »

在使用QT5.0.2进行开发的时候,出现多条Cannot create accessible interface for object: QTabBar(0x97c2ca8, name = “qt)。
搞得很郁闷,严重影响了进度,最初以为是多线程引起的错误,阅读官方文档后,确认线程使用完全正确。
于是google,百度各种搜,看见很多coder把这个作为一个bug提交给了QT官方,也是各种设置,但是不管用。

看样子调试还得看自己,最后发现引起问题的是代码中一段函数引起

int RobotNetEpoll::openEpoll(int Max_Events)  
{
 maxevents = Max_Events;
  struct rlimit rt;
  rt.rlim_max = rt.rlim_cur = maxevents;
  errno = 0;
  if (setrlimit(RLIMIT_NOFILE, &rt) == -1) 
	{
        // PRINT_ERR("setrlimit 出错:  %d %s\n", errno, strerror(errno));
		 return -1;
  }
	//为类的成员分配空间
  events = new struct epoll_event[maxevents];
	//创建Epoll描述符epfd
  if ((epfd = epoll_create(maxevents)) < 0)
  {
		delete [] events;
    return -1;
  }
 return 0;

events = new struct epoll_event[maxevents];这一句引起错误,难道是QT中不能这样动态分配数组。 Oh my God,改称static const 后解决。

我觉得:
编译错误最好解决
其次就是链接错误
再其次就是逻辑错误
再其次就是运行时确定性错误
最难解决的就是运行时偶发性错误

当然这个错误属于运行时确定性错误。

广告位

发表评论

你必须 登陆 方可发表评论.