一、前言

在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中文或者其他语言显示呢?这个就需要研究qtpropertybrowser的源码了,通过研究发现,在QtObjectControllerPrivate类中负责对控件的属性名称进行遍历,然后发送到QtVariantPropertyManager进行统一的管理,那只要将这里的属性名称进行映射就行了,对应的英文到中文或者其他语言都可以,甚至枚举值的下拉框也可以在这里换成中文的。曾经想过用翻译的机制,后面发现路很漫长,而且最终还是需要映射转换,看过QtDesigner的源码,里边最终也是将翻译文件中的对应项转换成中文的。

二、实现的功能

1. 自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。

2. 拖曳到画布自动生成对应的控件,所见即所得。

3. 右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。

4. 独创属性栏文字翻译映射机制,效率极高,可以非常方便拓展其他语言的属性栏。

5. 所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。

6. 支持手动选择插件文件,外部导入插件文件。

7. 可以将当前画布的所有控件配置信息导出到xml文件。

8. 可以手动选择xml文件打开控件布局,自动根据xml文件加载控件。

9. 可拉动滑动条、勾选模拟数据复选框、文本框输入,三种方式来生成数据应用所有控件。

10. 控件支持八个方位拉动调整大小,自适应任意分辨率,可键盘上下左右微调位置。

11. 打通了串口采集、网络采集、数据库采集三种方式设置数据。

12. 代码极其精简,注释非常详细,可以作为组态的雏形,自行拓展更多的功能。

13. 纯Qt编写,支持任意Qt版本+任意编译器+任意系统。

三、效果图

四、核心代码

#pragma execution_character_set("utf-8")#include "qtpropertyname.h"#include "qstringlist.h"#include "qfile.h"#include "qdebug.h"QMap QtPropertyName::maps = QMap();void QtPropertyName::initMap(){ //从文件加载英文属性与中文属性对照表 QFile file(":/propertyname.txt"); if (file.open(QFile::ReadOnly)) { //QTextStream方法读取速度至少快30%#if 0 while(!file.atEnd()) { QString line = file.readLine(); appendMap(line); }#else QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); appendMap(line); }#endif file.close(); }}void QtPropertyName::appendMap(const QString &data){ QString line = data; //过滤注释等 if (line.contains("#") || line.contains("//")) { return; } line = line.trimmed(); line = line.replace(

更改qt复选框大小_Qt编写控件属性设计器5-属性中文相关推荐

  1. Silverlight Telerik控件学习:带CheckBox复选框的树形TreeView控件

    在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择.分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了 解决方案一: 利用Silvelri ...

  2. elementui树形复选框_Element-ui表格树形控件结合复选框实践

    Element-ui是现在国内用得比较多的ui框架,其table组件提供了多选以及树形数据的功能,但却没有提供将两者结合的功能,我们先来看下面的图片,本文将介绍以下的功能如何实现以及其中的一些踩坑点. ...

  3. qt qss设置字体大小_Qt编写自定义控件70-扁平化flatui

    一.前言 对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反 ...

  4. java swing复选框大小_Java Swing界面编程(28)---复选框:JCheckBox

    程序可以通过JRadioButton实现单选按钮的功能,那么要实现复选框的功能,则必须使用JCheckBox完成. package com.beyole.util; import java.awt.C ...

  5. HTML中如何改变多选框的背景色,如何用css更改输入复选框的背景颜色?

    我总是使用伪元素:之前和之后用于更改复选框和单选按钮的外观.它的作品就像一个魅力.它是纯CSS. 您的背景和边框在此方法中正常工作. 这是我怎么做 .Box { background: #666666 ...

  6. html如何自动调整边框大小,html5如何设置复选框大小

    ibeautiful 你不光能 改变大小 还能改变他的样式12345678910111213141516input[type="checkbox"]{  display: inli ...

  7. QT复选框CheckBox用法20190910

    复选框QcheckBox一般用于表示"是/否"的选择: 学习CheckBox复选框的主要关注三个方面: 1.有哪些属性:在设计器中可以查看属性: 2.查看文档,他有哪些操作函数: ...

  8. qt qss设置字体大小_Qt编写自定义控件55-手机通讯录

    一.前言 前面几篇文章中的控件基本上难度系数接近0,甚至有凑控件数量的嫌疑,这次必须来一个强悍的控件,本控件难度系数在所有控件中排前五,代码量也不少,头文件都550行,实现文件1600行,为什么这么多 ...

  9. html复选框的背景,更改html复选框的背景颜色

    我正在实现颜色复选框我认为它会很容易做颜色复选框,但是当我开始实施它. Job是第一次这么做.下面是COLOR CHECK BOX的HTML和CSS,任何人都可以定制这个HTML和CSS. HTML: ...

  10. linux QT 结束当前进程_Qt编写控件属性设计器7-串口采集

    一.前言 数据源是组态软件的核心灵魂,少了数据源,组态就是个花架子没卵用,一般数据源有三种方式获取,串口.网络.数据库,至于数据规则是什么,这个用户自己指定,本设计器全部采用第一个字节作为数据来演示. ...

最新文章

  1. 玩转社区开源贡献,看这篇就够了!
  2. Java与ElasticSerach的整合
  3. 在springboot中使用springsecurity实现安全控制
  4. 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)
  5. java agent技术原理及简单实现
  6. 《C# 程序员的自我修养》送书活动结果公布
  7. mysql授予权限和撤销权限的关系_MySQL数据库常用的授予权限和撤销权限的命令讲解...
  8. 转载:WPF binding
  9. 人工智能(12)---中国智能语音业务与应用发展白皮书
  10. 东风本田4S店违规收取续保押金 ,电台主持在线怒怼经理,反被指无教养?
  11. Hpdl80服务器硬件驱动,hpe proliant dl80 gen9服务器用户指南.pdf
  12. 【精讲】软件工程用图的各个阶段及其应用(详细)系统流程图、数据流图、数据字典、ER图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图等
  13. 网站建设的一些基本教程操作
  14. 温州话的歌曲也很好听
  15. debug protractor
  16. 软件测试,自学3个月出来就是高薪工作?你以为还是2019年以前?
  17. Python123分段函数计算
  18. Revi开发 - 碰撞检测
  19. 解决VisualVm的Profiler一直转圈:正在连接到目标 VM...
  20. starting to launch local task to process map join maximum memory =1029701632 的原因

热门文章

  1. LLDB使用详解以及断点调试教程
  2. Codeforces Round #535 (Div. 3)
  3. 关于域名的那些“彩蛋”
  4. FPGA构建人工神经网络系统应用实例——视障人士便携导航系统
  5. 微信小程序审核不通过的解决方法
  6. CentOS下Storm 1.0.0集群安装具体解释
  7. 【转载】合理规划您的硬盘分区
  8. [NIO]dawn之Task具体解释
  9. cent OS 6.3 yum方式安装openldap,phppldapadmin,lam
  10. 系统运行后修改linux系统时区