• 8609阅读
  • 4回复

C++ GUI Programming with Qt 4, Second Edition中的一个例子的问题 [复制链接]

上一主题 下一主题
离线xfwduke
 

只看楼主 倒序阅读 楼主  发表于: 2008-10-18
— 本帖被 XChinux 执行加亮操作(2008-11-02) —
第二章的  Shape-Changing Dialogs 这一节中
书上有一个例子建立了一个窗口用到了

  1. SortDialog::SortDialog(QWidget *parent)
  2.       : QDialog(parent)
  3.   {
  4.       setupUi(this);
  5.       secondaryGroupBox->hide();
  6.       tertiaryGroupBox->hide();
  7.       layout()->setSizeConstraint(QLayout::SetFixedSize);
  8.       ......
  9.   }

这么一段代码.我按照例子做的时候,编译出来的文件在ubuntu 8.04下会提示段错误.用gdb初步调了下,发现是
  1.   layout()->setSizeConstraint(QLayout::SetFixedSize);

这一句的问题,在这个例子中,layout()函数返回了NULL,引用指针的时候造成了段错误.
我自己在网上搜索了下,又去找了这本书的第一版来看了下,发现都是这么写的,貌似这段代码应该能正常..
但是在我这里怎么layout()就返回了NULL呢?
电脑的CPU是双核的,这个应该没影响吧?
离线xfwduke

只看该作者 1楼 发表于: 2008-10-19
算了,我自问自答了.
在Designer里面少定义了一个layout

ui文件里面少了这一句
  1. <layout class="QGridLayout" name="Mylayout" >

怪不得会返回NULL
[ 此贴被xfwduke在2008-10-19 15:42重新编辑 ]
离线houapple
只看该作者 2楼 发表于: 2009-09-29
呵呵
恩,给我提示了哈!
离线碎鞘
只看该作者 3楼 发表于: 2011-02-19
非常感谢楼主,再折腾我就要疯了。。。
离线roywillow

只看该作者 4楼 发表于: 2011-02-19
我至今还记得用designer生成的mainwindow的自动带的statusbar的纠结
自动生成的状态栏就叫statusBar,QMainWindow有个statusBar()成员函数
结果调用statusBar()的时候似乎会出现歧义
结果不得不把自动生成的状态栏的名字改了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个