使用C++和Qt的涂鸦程序(二)

这篇博客介绍了使用C++和Qt构建的涂鸦程序,重点讨论了UI设计、线程控制类workerThreadController以及运算类graffitiWorker。通过workerThreadController启动新线程来防止主线程假死,graffitiWorker利用函数指针实现功能扩展,以提高代码复用和可读性。文章还提到了类调用顺序和特殊函数参数设置。
摘要由CSDN通过智能技术生成

项目源代码
https://github.com/drink-crow/graffiti
使用C++和Qt的涂鸦程序(一)
使用C++和Qt的涂鸦程序(三)

UI设置

mainframe类:class Graffiti

设置UI界面纯粹是个体力活,没有什么值得细说的。讲讲本程序的类构成好了,可以帮助快速阅读源代码

ui布局文件
Graffiti类就是程序的主界面类。graffiti就是涂鸦的意思。
Qt Deigner里的设置如上图,摆上一些pushbutton,lineedit,toolbutton,lebel,combobox,再加上一点布局。Qt在简单布局上还是挺方便的。
控件的名字我都定义得比较长,看起来比较啰嗦。实际上非常有必要,做控件的名字一定要长要细,一定不能有缩写。因为控件往往会有数十个,为了避免过了一段时间不知所云还是写上详细的名字比较好。
ui文件单纯用来布局,控件的一些设置写在代码里,在Qt Deigner里定义容易遗漏,而且改起来麻烦。

graffiti.h里除去一些界面用到的槽函数,信号,和一些保存状态用的私有变量。
值得特别关注的是这个自定义的线程控制对象。这个对象开启一个新的线程来运算涂鸦,以防大量的运算下主线程直接假死。

 graffitiThreadController workerThreadController;

稍后将介绍这个类。

   workerThreadController.startGraffiti(s, ui.pixelRadiusDoub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值