QPainter出现异常,程序退出

damingg 2011-11-23 02:41:06
一个简单的console程序,代码如下:

#include <QImage>
#include <QPainter>

int main()
{
QImage img(400, 300, QImage::Format_RGB32);
img.fill(0);

QPainter pain;
pain.begin(&img);

pain.drawText(10,10, "abc");

pain.end();

img.save("./ttt.jpg");

return 0;
}


总是在 pain.drawText(10,10, "abc");异常退出,求解答
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
damingg 2011-11-25
  • 打赏
  • 举报
回复
另外5楼的,正确的
damingg 2011-11-23
  • 打赏
  • 举报
回复
明白了,是背景色弄成了黑丝,跟字体颜色一样了
所以看不到文字
damingg 2011-11-23
  • 打赏
  • 举报
回复
不知道Qt是否有相关的异常捕获,然后输出错误信息,这样也好知道原因
xiachm 2011-11-23
  • 打赏
  • 举报
回复
因为:

QFontDatabase::load: Must construct QApplication first

所以,被你赶上了!
damingg 2011-11-23
  • 打赏
  • 举报
回复
发现不是QApplication的问题

不管加不加 QApplication 这个以及pro里添加 QT += gui

我画椭圆没问题,
但是drawtext就是没显示
xiachm 2011-11-23
  • 打赏
  • 举报
回复
QImage和QPainter都在QtGui模块里,在你的pro里加入QT += gui

同时使用QApplication构建程序

但根据你的程序需求,是没有必要进入事件循环的。直接return 0就好了。
damingg 2011-11-23
  • 打赏
  • 举报
回复
构建QCoreApplication跟构建QApplication类似吗?
构建QCoreApplication之后依然不行


#include <QtCore/QCoreApplication>
//#include <QtGui/QImage>
//#include <QtGui/QPainter>
#include <QImage>
#include <QPainter>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QImage img(400, 300, QImage::Format_RGB32);
img.fill(0);

QPainter pain;
pain.begin(&img);
pain.setBrush(Qt::white);


pain.drawText(100,100, "abc");

pain.end();

img.save("./ttt.jpg");

return a.exec();
}

能否用Qt creator帮我运行下代码看看,谢谢!
xiachm 2011-11-23
  • 打赏
  • 举报
回复
不看提示吗?必须先构建QApplication

16,203

社区成员

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

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