QT地址薄的问题

jdwq33 2012-12-01 08:55:43
在构造器中是这样:
saveButton = new QPushButton(tr("Save..."));
saveButton->setEnabled(true);
saveButton->setToolTip(tr("Save contacts to a file."));

connect(saveButton, SIGNAL(clicked()), this, SLOT(saveToFile()));


void AddressBook::saveToFile()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("Save Address Book"), "",
tr("Address Book (*.abk);;All Files(*)"));
if(fileName.isEmpty())
{
return;
}
else
{
QFile file(fileName);

if(!file.open(QIODevice::WriteOnly))
{
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}

QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_7);
out<<contacts;
}
}

点击saveButton按钮根本就没任何反应,
为什么实现不了呢?因为刚学QT,所以不熟悉,麻烦大师帮帮忙啊!!告诉小弟是哪里出错了吗?
...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdwq33 2012-12-03
  • 打赏
  • 举报
回复
引用 1 楼 jdwx1 的回复:
Q_OBJECT public: 构造函数(); public slots: //1 void saveToFile(); privite slots: //2 void saveToFile(); 要向上面的1或者2那样声明,才可以作为槽函数使用,Q_OBJECT宏也是必须的,这个类必须继承自QObject。 这些条件全部都要具备。
谢谢,我忘了,我把它放在了public:里面了,真的太感谢了!!
jdwx 2012-12-01
  • 打赏
  • 举报
回复
Q_OBJECT public: 构造函数(); public slots: //1 void saveToFile(); privite slots: //2 void saveToFile(); 要向上面的1或者2那样声明,才可以作为槽函数使用,Q_OBJECT宏也是必须的,这个类必须继承自QObject。 这些条件全部都要具备。

16,216

社区成员

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

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