从零开始做3D地图编辑器(十一)(基于QT与OGRE)

五、日志栏与DockWidget

         QDockWidgetQT中一个使用方便但又实用的控件,稍微大一点的项目都会使用它,只需要简简单单几句话就可以做出很酷的效果,为什么不用?而且我相信只要你使用过一次就会对它爱不释手。

         在基本需求里,我们提出日志栏必须能够自由拖动,而且可以嵌入窗体,所以日志栏就得使用了一个QDockWidget,功能控件这一块很简单,只是不断地添加相应的日志信息,所以我使用QListWidget来显示日志信息,如果你有什么更好的建议,不妨告诉我,谢谢。

         QDockWidget的申请很简单。

         在头文件中加入:

CPP中加入:

   

行一是新建一个标题栏为LogDockWidget,指定this为父Widget

行二是指定这个Dock的允许挂接的区域,现在指定的是下部。你可以通过|的形式来指定多区域,比如

Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea|Qt::BottomDockWidgetArea

行三是把DockWidget添加进窗体,这里提供了一个标志,这个标志指的是初始默认位置。

         就这样,一个DockWidget就出来了,够简单吧,我们还可以把DockWidgetQAction取出来,放在工具栏和菜单里面去,只要通过以下代码:

        

行一是取得QAction

行二是设置QAction快捷键。

行三是设置QAction图标。

然后把QAction添加进你的菜单或工具栏。

         m_pDockMenu-> addAction(logAction);

接下来,要在DockWidget里面加入QListWidget来实现日志功能。方法也很简单。

在头文件中加入:

Cpp中加入:

行一是新建一个List,父类是LogDock

行二是设置LogDock的主部件是这个List

然后我们要写一个函数让系统可以把新日志放进去。函数代码如下:

好了,我们只要使用这个函数就可以在List中写入日志了,你也可以适当地扩展一下,比如说图标加文本的方式。

如何在文本中加入日志呢?我这里也提供两个函数。

第一个函数是清空日志文件。

第二个函数是写入日志。

 

这节最后来说一下QT的内存管理,可能一路看下来,之前都没提过delete吧,其实这一切QT都帮我们做好了,QT的内存管理你只要记住一句话,有父的Widget就不用显式删除,如果没有添加进父的Widgetnew 了之后一定要显式删除哦,不然会内存泄漏。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值