免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2928 | 回复: 9
打印 上一主题 下一主题

请大家帮忙看看这段程序![qt] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-21 11:28 |只看该作者 |倒序浏览
这个槽又出什么问题了?我要单击一个按钮打开字体对话框QFontDialog,感觉没什么问题啊?还要请大家帮忙看看!

建立一个Use_FontDialog.h头文件,如下:
#include <qapplication.h>
#include <qwidget.h>
#include <qfontdialog.h>
#include <qfont.h>
#include <qpushbutton.h>

class MyMainWindow : public QWidget
{
     Q_OBJECT
public:
     MyMainWindow();
private:
     QPushButton *pButton;
     QFontDialog *pFDialog;
     QFont MyFont;
public slots:
     void CallFontDialog();
};



建立一个Use_FontDialog.cpp文件,程序如下:
#include "Use_FontDialog.h"

MyMainWindow::MyMainWindow()
{
     setGeometry(100, 100, 640, 480);
     pButton = new QPushButton("Open FontDialog", this);
     pButton->setGeometry(500, 400, 100, 60);
     connect(pButton, SIGNAL(clicked()), this, SLOT(CallFontDialog()));
}
void MyMainWindow::CallFontDialog()
{
     bool ok;
     MyFont = pFDialog->getFont(&ok);
}
int main(int argc, char **argv)
{
     QApplication a(argc, argv);
     MyMainWindow w;
     a.setMainWidget(&w);
     w.show();
     return a.exec();
}

先前一位兄弟说qt的moc机制需要单独的头文件,有一个问题已经这样做给解决掉了!现在我也是这样实现的,可为什么又报错误了?

论坛徽章:
0
2 [报告]
发表于 2007-12-24 09:19 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2007-12-24 17:47 |只看该作者
报什么错阿

论坛徽章:
0
4 [报告]
发表于 2007-12-25 09:24 |只看该作者
报构造函数未定义的错误!不过很奇怪,现在没有了,一切正常!见鬼!

论坛徽章:
0
5 [报告]
发表于 2007-12-25 10:24 |只看该作者
刚才又出现这种错误,居然发现是Makefile的原因,干掉它从新生成一个就可以了!我使用qt3.3,这种情况是怎么引起的?请大家指教!

论坛徽章:
0
6 [报告]
发表于 2007-12-26 16:31 |只看该作者
Makefile发上来看看 。

论坛徽章:
0
7 [报告]
发表于 2007-12-26 21:00 |只看该作者
晕 pFDialog什么时候new的??
好像看过这个帖子了吧。。。。

论坛徽章:
0
8 [报告]
发表于 2007-12-27 09:14 |只看该作者
原帖由 xuanyuzheng 于 2007-12-26 16:31 发表
Makefile发上来看看 。
没保存副本,直接给干掉了。

论坛徽章:
0
9 [报告]
发表于 2007-12-27 09:27 |只看该作者
原帖由 萎代码 于 2007-12-26 21:00 发表
晕 pFDialog什么时候new的??
好像看过这个帖子了吧。。。。


呵呵,人家那个用的是静态函数,不需要创建对象。

论坛徽章:
0
10 [报告]
发表于 2007-12-27 09:30 |只看该作者
原帖由 萎代码 于 2007-12-26 21:00 发表
晕 pFDialog什么时候new的??
好像看过这个帖子了吧。。。。

呵呵,那是上一个贴子,另一个问题了。我也很奇怪,为什么pFDialog没有new,只不过书本上的实例就是这样写的,姑且就这样写上看看效果。后来在帮助文档里查了一下,getFont()这个函数,是静态公有类函数,pFDialog->可能被qt编译器识别为作用区域了,相当于QFontDialog::,这这种写法不好,在VC里是被禁止的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP