ying32 / govcl

Cross-platform Go/Golang GUI library.
https://z-kit.cc
Apache License 2.0
2.25k stars 227 forks source link

RichEdit Lines().Add 能否每行字都设置独立的颜色呢 #204

Closed lyglj closed 3 months ago

lyglj commented 5 months ago

RichEdit Lines().Add 能否每行字都设置独立的颜色呢 我从demo里看 每次设定颜色都需要选择文字长度,大量的日志需要显示 能否直接输出前或者输出后设定颜色 整行都变 比如 richEdit.Lines().Add("这是一段文字红色") richEdit.SelAttributes().SetColor(colors.ClRed) richEdit.Lines().Add("这是一段文字绿色") richEdit.SelAttributes().SetColor(colors.ClGreen)

ying32 commented 5 months ago

可以的

richEdit.SetSelLength(1) // 以当前光标位置选择一个字符设置属性
x := rand.Int31n(3)
switch x {
case 0:
    richEdit.SelAttributes().SetColor(colors.ClRed)
case 1:
    richEdit.SelAttributes().SetColor(colors.ClGreen)
case 2:
    richEdit.SelAttributes().SetColor(colors.ClBlue)
default:
    richEdit.SelAttributes().SetColor(colors.ClYellow)
}
             // 然后添加数据
richEdit.Lines().Add("数据1")

另外,如果不想用TRichEdit,也可以用TListBox来实现,在MainFormImpl.go#L415这个文件里有个现成的。

lyglj commented 5 months ago

太感谢了,我还发现一个问题,Tbutton 控件经常会消失 ,鼠标滑过就出现了,我是windows 11系统

ying32 commented 5 months ago

这个难判断,你看看是不是有在协程中创建ui?

lyglj commented 5 months ago

我UI是lazarus创建的,协程中有部分的按钮
f.Button2.SetCaption("已停止") f.Button1.SetCaption("开始") f.Button1.SetEnabled(true) f.Button2.SetEnabled(false) 类似这种操作 继续观察吧

ying32 commented 5 months ago

协程中操作ui你需要遵守我文档中关于这个的说明。