赛科(天津)智能科技有限公司
二次开发手册

首页>支持与服务>二次开发手册

二次开发手册

界面上的文字、数值和状态,是怎样显示出来的

发布时间:2026-10-16 点击次数:1003

下载中英双语离线手册(ZIP,8.7 MB,含原始分辨率截图)

阅读目录 · English

上一篇用 #810 解释了“程序”页面的三个页签怎样切换。这一篇继续看同一个界面:“程序”两个字从哪里来,坐标框为什么显示三位小数,右上角为什么显示“仿真”,它的背景又为什么是红色。

这些内容都来自现有标准组态。本篇只读已有文件、观察已有页面,不增加按钮或参数。读完后,你应当能从一个显示位置找到它引用的参数,并分清文字、数值、选项和外观各由什么决定。

1.先找到这三个位置

进入“程序 → 刀路预览”,先看下面这张完整页面图。

标准程序页面:左上方页签文字、右侧机械坐标和右上角仿真状态

点击截图可放大查看,原始分辨率图片见离线包。

图 1 标准程序页面。左侧是“圆形铣底.nc”的刀路,右侧显示该文件的程序内容。本篇关注左上方“程序/文件管理”的文字、右侧“机械坐标”列,以及右上角红底白字的“仿真”。图中坐标为离线显示值,没有启动加工。

看哪里 屏幕上看到了什么 本篇要弄清什么
左上方主页面入口和下一行页签 程序、刀路预览、文件管理 页面怎样取得名称,英文名称怎样替换进来
右侧“机械坐标”列 X、Y、Z 等轴的数值 读取哪个参数,怎样显示正负号和小数位
右上角状态标签 仿真,红色背景 数字状态怎样变成文字,颜色又检查哪个条件

三处都会用到 -T(...),但括号中的内容不同,显示结果也不同。先沿着具体位置读,不必一开始记住所有 UI 属性。

截图中的坐标和数值为示例,请以软件和机台的实际配置为准。

2.到哪里找这些设置

打开软件运行目录中的 env/maininterface/maininterface.ui。可以用 Qt Designer 查看,也可以用文本编辑器搜索控件名字。

屏幕位置 文件中的控件名字 控件种类
“程序”入口 label_39 QLabel,显示文字的标签
“文件管理”页签 label_45 QLabel
“机械坐标”列标题 label_23 QLabel
X 轴机械坐标数值 lineEdit_10 QLineEdit,本处设置为只读
Y 轴机械坐标数值 lineEdit_12 QLineEdit,本处设置为只读
Z 轴机械坐标数值 lineEdit_14 QLineEdit,本处设置为只读
右上角“仿真”状态 label_22 QLabel

这里继续看 accessibleDescription 属性。本系统把显示内容、更新要求和条件等写在这个属性里。状态标签的具体颜色则写在 styleSheet 属性中。它们都是编辑器里的真实属性名。

文字来源还会用到以下文件:

文件 本篇中的用途
env/i18n/translatPack-0 中文文字和选项名称
env/i18n/translatPack-1 英文文字和选项名称
env/i18n/language 用户切换语言时,装入相应语言包并安排界面更新

下面解释参数时,会采用 #1100.itemtitle[0]、#300.item[30] 这样的完整字段写法。UI 属性中则保留原文件里的 #1100itemtitle0、#300.item30 等写法。复制 UI 属性时按所给原文复制,不能把脚本中的字段写法机械套入 UI。

3.“程序”两个字怎样显示出来

找到 label_39。它的 accessibleDescription 完整内容为:

-T(#1100itemtitle0)
-A: (clickedEvent:/env/programpage[0](#810permission=0))
-C1(#810permission==0)
-C0(1)
-D

上一篇已经解释过点击和选中外观。本篇先抓住第一行:

-T(#1100itemtitle0)

它要求标签从 #1100.itemtitle[0] 取得显示文字。这里读取的是“第 0 个子项的名称”,不是 #1100 的数值,也不是 #1100.item[0] 的数值。

到中文语言包 env/i18n/translatPack-0 中,可以找到:

#1100.itemtitle[0]="程序"

到英文语言包 env/i18n/translatPack-1 中,对应行是:

#1100.itemtitle[0]="Program"

两个文件写入的是同一个字段。中文包写“程序”,英文包写“Program”;原标签始终读取这个字段,所以可以使用同一份 UI。

“文件管理”采用相同的方法。它在 label_45 中的显示设置为下面这一行;这里是节选,完整点击设置见上一篇:

-T(#1100itemtitle6)

中文包写入:

#1100.itemtitle[6]="文件管理"

英文包写入:

#1100.itemtitle[6]="File Management"

于是,可以把过程连起来读:

语言脚本写入名称 → 标签的 -T(...) 读取这个名称 → 页面显示相应文字。

这也解释了一个常见现象:在 Qt Designer 中只修改标签的 text 属性,软件运行后又显示回原来的名称。对于这里的标签,运行时还会按 -T(...) 重新取文字。要理解实际显示,应该继续查它引用的名称字段和语言包。

修改磁盘上的语言包文件,也不等于当前界面立即改变。文件中的赋值需要被执行,内存中的文字改变后,控件才可能更新。标准语言切换脚本还会刷新菜单、表格并重新准备部分页面;完整语言定制方法放到语言专题中讲。

4.机械坐标怎样从数值变成显示文字

找到 X 轴机械坐标框 lineEdit_10。它的完整组态属性只有两行:

-T(#300.item30)
-D

第一行读取 #300.item[30],第二行要求运行中继续更新显示。这个框的 readOnly 属性为 true,所以这里是查看位置,不是输入目标位置。

在当前六轴配置中,机械坐标显示值的对应关系为:

轴 控件名字 显示设置 读取的字段
X lineEdit_10 -T(#300.item30) #300.item[30]
Y lineEdit_12 -T(#300.item31) #300.item[31]
Z lineEdit_14 -T(#300.item32) #300.item[32]

这里的 30、31、32 是系统已有的坐标显示字段。它们的用途由软件内置,读者无需重新定义,也不要为了显示示例数值而改写机床运行参数。

为什么 12.5 会显示成 12.500

下面仍是原生坐标区,离线演示给 X、Y、Z 准备了 12.5、-3.25、8 三个值。页面实际显示如下:

原生坐标区,机械坐标 X 为 12.500、Y 为 -3.250、Z 为 8.000

点击截图可放大查看,原始分辨率图片见离线包。

图 2 图 1 右侧坐标区的同一套控件,在另一组离线演示值下的显示。重点看“机械坐标”列:X 为 12.500,Y 为 −3.250,Z 为 8.000。无需移动机床或在软件中输入这些数值来完成本课。

用于显示的数值 图中的文字 观察到的规则
12.5 12.500 小数部分补足到三位
-3.25 -3.250 保留负号,小数部分补足到三位
8 8.000 实数类型即使恰好为整数,也按小数格式显示

这些坐标子项的类型是实数。软件根据数值及显示规则形成文字,不是每一个数值都需要在脚本中手工拼出三个零。

当前这条实数显示路径还检查 #330.item[8]。该字段关联直线轴默认编程单位:值为 0 时按三位小数显示,值为 1 时按四位小数显示。两种语言包分别给出“公制mm/英制inch”和“mm/inch”。

小数位数、长度单位、机床精度是不同的事情。 这一段只解释文字格式。显示四位小数不能证明机床具备相应精度;也不能把单位选择当作单纯的排版开关,为了改变小数位随意切换。本章不讲单位转换操作。

这个坐标框的 -T(...) 只读取数值,没有追加“mm”或“inch”的文字。参数中存在单位说明,并不代表每一个数值框都会自动显示单位。

数值从哪里来,页面是否负责计算坐标

本例的机械坐标框直接读取系统准备好的显示字段。系统会按运行状态更新坐标并整理显示值,页面再读取它。画面上的 -T(#300.item30) 本身没有发出移动指令,也没有定义工件原点。

右侧“工件坐标”列使用了另外的设置,还涉及坐标偏置和输入过程。不能因为两个框看起来相同,就把机械坐标框的写法复制过去并假定含义相同。本篇先读懂“机械坐标”这一列;坐标计算和坐标设置另有专章。

5.状态值为 1,为什么显示“仿真”

右上角的 label_22 使用下面这一行取得文字:

-T(#319.item11)

它读取的是 #319.item[11] 的值,却没有直接显示 0 或 1。原因是这个子项的类型为选项,软件会把值当作选项编号,再取对应文字。

中文语言包中的相关两行为:

#319.itemtitle[11]="仿真?:"
#319.itemunit[11]="联机<<仿真"

逐项分开看:

字段 本处保存什么 对右上角标签的作用
#319.item[11] 当前选项值,0 或 1 决定选哪一项
#319.itemtitle[11] 子项名称“仿真?:” 是这个参数的名称;右上角标签没有读取它来作显示标题
#319.itemunit[11] 选项文字“联机<<仿真” 按 << 分开,提供第 0 项和第 1 项的文字
#319.itemtype[11] 软件内置的选项类型 告诉软件这里要按选项编号取文字

选项编号从 0 开始,因此:

#319.item[11] 取哪一项 中文显示 英文显示
0 第 0 项 联机 Online
1 第 1 项 仿真 Simulation

英文语言包的原文是:

#319.itemtitle[11]="Simulation? :"
#319.itemunit[11]="Online << Simulation"

英文选项分隔符两侧包含空格,引用时保留原文。两种语言使用同一个状态值和同一个 UI 控件,只替换选项文字。

这里尤其要注意 .itemunit 要结合参数类型来读。在数值参数中,它常用于单位说明;在这个选项参数中,它保存的是选项列表。看到名称里有 unit,不能把所有内容都理解成毫米、度或转速单位。

右上角状态是软件已有的内置状态。学习它的显示方法,不需要修改其类型或人为改写状态值。以后阅读其他状态标签时,可以依次查:引用的值 → 子项类型 → 选项文字。

6.同样显示“仿真”,为什么背景可能不同

先看图 1 右上角的局部:

原生登录入口旁的红色仿真标签

点击截图可放大查看,原始分辨率图片见离线包。

图 3 “登录”右边是红底白字的“仿真”。文字反映仿真选项,红色背景来自未连接条件。颜色和文字各有自己的来源。

label_22 的完整 accessibleDescription 为:

-T(#319.item11)
-C2(#324_item12==0)
-C0(#324_item12==1&&#319.item11==0)
-C1(#324_item12==1&&#319.item11==1)
-D

第一行已经读过。现在读中间三条条件:

原有设置 检查什么 选择的外观
-C2(#324_item12==0) 控制卡连接状态为 0,即未连接 2 号
-C0(#324_item12==1&&#319.item11==0) 已连接,并且仿真选项为 0 0 号
-C1(#324_item12==1&&#319.item11==1) 已连接,并且仿真选项为 1 1 号

这里 && 表示两边条件都要成立。#324.item[12] 是软件内置的控制卡连接状态,和 #319.item[11] 的仿真选项是两个字段。

-C2 的 2 是外观编号,不是“红色”的通用代号。具体颜色在这个标签自己的 styleSheet 中定义,下面保留原内容并统一缩进:

QLabel[style="2"]
{
    color:rgb(255,255,255);
    background-color:rgb(255,0,0);
}
QLabel[style="1"]
{
    color:rgb(0,0,0);
    background-color:rgb(255,255,0);
}
QLabel[style="0"]
{
    color:rgb(0,0,0);
    background-color:rgb(0,255,0);
}

color 是文字颜色,background-color 是背景颜色。于是可以把这个标签的完整显示规则列出来:

连接状态 #324.item[12] 仿真选项 #319.item[11] 中文文字 外观
0 0 联机 2 号:白字红底
0 1 仿真 2 号:白字红底,图 3 所示
1 0 联机 0 号:黑字绿底
1 1 仿真 1 号:黑字黄底

这张表解释原有显示条件,不要求读者在机床上逐一制造这些状态。单看“联机”两个字不能判断控制卡已连接,单看红色也不能判断是否处于仿真。 本标签必须把文字和连接条件一起读。

以后查看其他控件的 -C0、-C1、-C2 时,也要找到它实际使用的样式表。这些编号的颜色由各控件或其所在页面定义,不是整套系统统一固定的三种颜色。

7.-D 怎样让显示跟着变化

前面几个控件都有 -D。它要求软件在运行中继续更新显示文字,而不是只在建立控件时取一次值。

以 X 轴机械坐标框为例,可以按这个顺序理解:

  1. 页面建立时,读取 #300.item[30],按实数格式形成文字。
  2. 后续系统更新这个显示字段。
  3. 界面更新时,原来的 lineEdit_10 再读这个字段,换成新的文字。

离线核对时,这个框已经从 12.500 更新到 28.750,没有重新装入 UI 文件。图 2 展示的是前一个值,后一个值用于核对更新过程。

对于状态标签,更新时既会读取状态文字,也会检查外观条件。-D 不负责连接控制卡、不负责运行语言包,也不负责保存参数;它解决的是显示跟随数据变化的问题。

这里也不要把规则概括成“没有 -D,控件就完全不会变化”。条件外观有自己的更新处理,某些操作还会主动刷新控件。对本篇这种持续显示文字和数值的控件,直接对照原有 -D 设置来理解即可。

更新还会考虑控件是否可见、是否正在输入等情况。例如输入框正在编辑时,不应想当然地要求每次刷新都覆盖操作者正在输入的文字。当前机械坐标框是只读显示,本篇不展开输入框的提交过程。

8.把一个显示位置完整地读下来

现在再看右上角“仿真”,可以按以下步骤把设计过程讲清楚:

  1. 在主 UI 中找到 label_22,先读 accessibleDescription。
  2. -T(#319.item11) 说明文字来自第 319 号参数的第 11 个子项。
  3. 这个子项是选项类型;当前值 1 选中“联机<<仿真”中的第 1 项。
  4. 显示的文字因此为“仿真”;英文包下为“Simulation”。
  5. #324.item[12] 为 0,所以 -C2(...) 选中 2 号外观。
  6. styleSheet 将 2 号外观定义为白字红底。
  7. -D 使后续文字继续跟随参数更新,外观条件也在界面更新中重新检查。

读“程序”名称时,重点查名称字段;读坐标时,重点查数值字段和实数格式;读状态时,还要查选项文字和外观条件。同样的 -T(...),要连同控件种类、引用字段和参数类型一起读。

上一篇还见过 fileFrame 的 -T(811),它用于说明这个区域装入什么内容。不能把这一篇标签和数值框的解释,直接套到所有控件上。

9.怎样自己核对,显示不对先查哪里

本课可以只读文件、观察页面完成,不要求改写运行参数。

核对动作 应能说明什么
找到 label_39,再找两个语言包中的对应赋值 “程序”和“Program”都写到 #1100.itemtitle[0]
找到 lineEdit_10 的两行属性和 readOnly 它从坐标显示字段读数,持续更新,当前用于只读显示
找到 label_22 的属性与样式表 文字来自仿真选项,颜色还要看连接状态
对照三处的 -T(...) 能分清名称、数值和选项文字的不同来源

出现问题时,按下面的顺序查:

现象 先检查什么
在 Designer 中改了 text,运行后又变回去 是否还有 -T(...) 从参数重新读取文字
改了语言包,当前页面仍是旧文字 改的是哪个语言文件;相应赋值是否已经执行;该控件是否已更新
应显示名称,却显示了一个数字 是否把 .itemtitle[...] 误写成 .item[...] 或参数值
状态标签显示 0.000 或 1.000 核对引用字段、子项类型和选项文字;不能把内置选项类型改成实数类型
“仿真”文字正确,颜色却与预期不同 单独检查连接条件和外观编号,再查样式表中的颜色
数值不随变化更新 确认引用的是会变化的显示字段,检查 -D,再检查可见性或正在编辑等情况
小数位数与另一环境不同 对照实数显示路径和单位选择;不要把显示位数等同于机床精度
给参数写了单位,数值框旁仍没单位文字 先看这个控件到底读取了哪些字段,不能假定单位会自动追加

读完这一篇,你应能回答三个问题:页面读了什么;软件怎样把它变成文字;什么时候重新显示。 下一篇将沿着这些参数继续看:一个现有参数窗口怎样生成输入行,用户输入以后又写回哪里。

本篇只读坐标框之后,可在坐标输入框篇继续看原工件坐标框:怎样切换内容候选、保护输入文字,以及按Return、Esc或移开焦点后分别做什么。

上一课:页面切换 · 下一课:参数窗口 · 阅读目录

Copyright © 2018-2024 赛科(天津)智能科技有限公司 All Rights Reserved.

在线咨询