qt怎样实现如下界面
方法一:Qt Widgets文字内容为两个QLabel垂直布局,分别设置字号和颜色,然后多组文字内容用水平布局,中间用Splitter分割,可以完美实现。要写死的话,利用Qt Designer可以直接拖控件做出来;要动态的话,可以写个类或者函数负责根据输入数据生成这么一组控件Button的自定义,通过修改样式表实现。可以在代码里根据需求动态生成stylesheet,也可以在Qt Designer里直接写死。其中有图标那个设置按钮必须用QToolButton,其他几个可以用QToolButton也可以用QPushButton。详见http://doc.qt.io/qt-5/stylesheet.html表格中单元格内容的自定义显示。利用Qt的Model-View-Delegate机制,继承实现自定义的QAbstractItemDelegate类,在paint()接口中使用QPainter绘制单元格。详见http://doc.qt.io/qt-5/qtwidgets-itemviews-coloreditorfactory-example.html http://doc.qt.io/qt-5/model-view-programming.htmlhttp://doc.qt.io/qt-5/qpainter.html其中,第三点可以适用于所有自定义控件场景,即用QPainter手绘控件。方法二:Qt Qml题主给的这个界面原型,其实是偏重于现在互联网领域的移动和web设计风格,所以更推荐采用这个领域的声明式界面编程Qt也提供了如html+css+js一样,通过脚本编写,以声明式的思路设计界面的机制,那就是Qt Qml,可以做到想怎么写就怎么写,想长啥样就长啥样不过你需要一个web前端队友,懂css和js的那种——因为Qml的语法其实就是css+jsQml可以做到什么程度呢?可以看看这些demohttp://doc.qt.io/qt-5/qtcharts-qmlweather-example.htmlhttp://doc.qt.io/qt-5/qtcharts-qmloscilloscope-example.htmlhttps://doc-snapshots.qt.io/qt5-5.6/qt3d-planets-qml-example.html更多的,可以在Qt Creator的欢迎界面的“示例”中搜索“qml quick”============================方法一,第3点补充今天想了下,可以不需要手写paint那么麻烦。Qt的view item的data是可以指定Role的,文本内容是Qt::displayRole或者Qt::editRole,而图中的效果,可以通过指定颜色实现model-\u0026gt;setData(index, text, Qt::DisplayRole);model-\u0026gt;setData(index, Qt::white, Qt::TextColorRole);model-\u0026gt;setData(index, Qt::darkGreen, Qt::BackGroundColorRole);
这样就可以很直观的实现自定义单元格了
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业