halcon控件显示文本的两种方法


//第一种方法,先获取字体,再设置
 public void Disp_Text(HWindowControl win, int Row, int Column, string color, string text)
        {

            try
            {

                HTuple hv_FontWithSize = null;

                //设置字体颜色
                win.HalconWindow.SetColor(color);
                //设置字体风格

                HTuple hv_Font;

               // 获取halcon支持的字体
                HOperatorSet.QueryFont(hWindowControl1.HalconWindow, out hv_Font);

                //50表示字体大小,括号中的数字表示第几种字体
                 hv_FontWithSize = hv_Font.TupleSelect(0) + "-50";//缺点在此,不知道想要的黑体排第几,所以括号里不知道填几

                win.HalconWindow.SetFont(hv_FontWithSize);
                //设置显示的位置(坐标)
                win.HalconWindow.SetTposition(Row, Column);
                //设置显示的内容
                win.HalconWindow.WriteString(text);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }

//第二种方法,直接设置字体
 public void Disp_Text(HWindowControl win, int Row, int Column, string color, string text)
        {

            try
            {

                HTuple hv_FontWithSize = null;

                //设置字体颜色
                win.HalconWindow.SetColor(color);
            
                /*setfont算子支持的字体种类
                ["Arial", "Bahnschrift", 
                    "Calibri", "Cambria", 
                    "Cambria Math", 
                    "Candara",
                    "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Ebrima", "Franklin Gothic", 
                    "Gabriola", "Gadugi", "Georgia", "Impact", "Ink Free", "Javanese Text", "Leelawadee UI", "Lucida Console", 
                    "Lucida Sans Unicode", "Malgun Gothic", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", 
                    "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "微软雅黑", "Microsoft YaHei UI", 
                    "Microsoft Yi Baiti", "MingLiU-ExtB", "PMingLiU-ExtB", "MingLiU_HKSCS-ExtB", "Mongolian Baiti", "MS Gothic", "MS UI Gothic",
                    "MS PGothic", "MV Boli", "Myanmar Text", "Nirmala UI", "Palatino Linotype", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", 
                    "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "宋体", "新宋体", "SimSun-ExtB", "Sitka Small", "Sitka Text",
                    "Sitka Subheading", "Sitka Heading", "Sitka Display", "Sitka Banner", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS",
                    "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI",
                "等线", "仿宋", "楷体", "黑体", "HoloLens MDL2 Assets", "MT Extra", "Buxton Sketch", 
                    "Segoe Marker", "SketchFlow Print", "DejaVu Math TeX Gyre", "Marlett", "default"]
                */

                //50表示字体大小,括号中的数字表示第几种字体,Bold表示粗体,不需要粗体就是"黑体-50"
                          hv_FontWithSize ="黑体-Bold-50";

                win.HalconWindow.SetFont(hv_FontWithSize);
                //设置显示的位置(坐标)
                win.HalconWindow.SetTposition(Row, Column);
                //设置显示的内容
                win.HalconWindow.WriteString(text);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }


用法:

Disp_Text(hWindowControl1, 20, 20, "red", "Font set to:");
Disp_Text(hWindowControl1, 20, 300, "green", "OK");

posted @   冰糖小袁子  阅读(2307)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示