1 需求描述
设计一个类似于VS的日志输出窗口,点击某一行后内容能够自动展开,改变列宽时,选中行能够根据日志内容自动调整高度。同时提供一些常用的功能,例如复制、显示/隐藏列、日志分类显示、显示状态恢复等。
2 设计思路
这是一个实际项目中的一个控制台功能模块,用于显示日志信息,日志分为错误、警告、消息三大类;当时主要考虑实现要尽可能简单,所以优先想到了QTreeWidget、QTableWidget,使用QTreeWidget效果不大理想,主要是在选中行时和改变列宽时自动展开功能,在网上也查询了一些方案,都不理想。
后来发现Qt提供的一个接口QTableView::resizeRowToContents,好了,一切由此展开。