Qt子窗口显示的问题

jokers1990 2014-09-17 09:54:46
求教~~~在写Qt4的代码时,遇到这样一个问题:有两个窗口,一个父窗口,一个子窗口

class CMyWidgetA : public QWidget
{
Q_OBJECT
...
}

class CMyWidgetB : public QWidget
{
Q_OBJECT
...
}
CMyWidgetA *w1 = new CMyWidgetA;
CMyWidgetB *w2 = new CMyWidgetB(w1);
...

我分别设置它们的颜色,并让它们显示,这时如果子窗口中包含了Q_OBJECT的话,子窗口就变成透明的了!!!??? 去掉Q_OBJECT话就能正常的显示出来,这是什么原因啊???
并且如果将子窗口改为从QDialog派生的,那么加或者不加Q_OBJECT都能正常显示。请问下大家是什么导致这种情况发生的啊???是不是QWidget有某个属性需要设置???
...全文
310 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jokers1990 2014-09-17
  • 打赏
  • 举报
回复
引用 2 楼 dbzhang800 的回复:
详见: http://blog.csdn.net/dbzhang800/article/details/6737540
谢谢~学习下~
jokers1990 2014-09-17
  • 打赏
  • 举报
回复
引用 1 楼 dbzhang800 的回复:
这个东西应该和Q_OBJECT 无关,和QWidget还是QDialog有关倒是真的。 CMyWidgetB *w2 = new CMyWidgetB(w1, Qt::Window);
刚看了个帖子,给子窗口加上 setAttribute(Qt::WA_styleBackground) 就可以了~
dbzhang800 2014-09-17
  • 打赏
  • 举报
回复
详见: http://blog.csdn.net/dbzhang800/article/details/6737540
dbzhang800 2014-09-17
  • 打赏
  • 举报
回复
这个东西应该和Q_OBJECT 无关,和QWidget还是QDialog有关倒是真的。 CMyWidgetB *w2 = new CMyWidgetB(w1, Qt::Window);

16,216

社区成员

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

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