• 4993阅读
  • 2回复

为什么qt提供的例子不能编译? [复制链接]

上一主题 下一主题
离线kran
 

只看楼主 倒序阅读 楼主  发表于: 2008-07-31
— 本帖被 XChinux 执行加亮操作(2008-08-02) —
  1. void AddressBook::on_addButton_clicked()
  2. {
  3.     AddDialog dialog(this);
  4.    
  5.     if (dialog.exec()) {
  6.             QString name = dialog.nameEdit->text();
  7.             QString email = dialog.emailEdit->text();
  8.             if (!name.isEmpty() && !email.isEmpty()) {
  9.                     QListWidgetItem *item = new QListWidgetItem(name, ui.addressList);
  10.                     item->setData(Qt::UserRole, email);
  11.                     ui.addressList->setCurrentItem(item);
  12.             }
  13.     }
  14. }

例子地址是:http://doc.trolltech.com/vs-integration-1.2/vs-integration-getting-started.html
AddDialog是由UI Designer 设计出来的,里面包含2个lineEdit分别是nameEdit和emailEdit
这段代码调试的时候显示他们不是dialog的成员..该怎么办?
离线kudev
只看该作者 1楼 发表于: 2008-08-02
哈哈,这是你的code写的不对,而不是QT的例子不能编译。如果把你写的这段code全部删除,编译就没有问题,对吧?

你去读一下 AddDialog class 的 code就知道了,那里面应该包含有一个成员变量是 ui,然后在这个class的构造函数中有一个类似 ui.setupUI(this) 这样的语句,对不对?

把你的code 中的 dialog.nameedit 修改为 dialog.ui.nameedit应该就可以了,具体的变量名,去读一下 AddDialog class 的source code 就知道了。
Welcome to http://www.InsideQt.com - 专注于Qt编程!

《Inside Qt Series》专栏文章正在连载中 . . . . . .
离线kran

只看该作者 2楼 发表于: 2008-08-02
谢谢,可能我看到的是老版本的例子,dialog的ui是似有成员,后来在声明里加了他们的getter就好了
快速回复
限100 字节
 
上一个 下一个