没有写死啊,为啥我改样式只能进库里改,改main的样式不起作用,是我哪里没搞对吗?
等二进制出来,我在游戏里测试下看看
抱歉没看到代码听不太懂。
已经发布更新库,可以指定偏移像素了,这个参数在高分屏上会自适应缩放,不用自己计算。
Word 里面跳动的问题已经修复了,更新库就可以了。
原因是因为 Word 的光标会有规律的缩小、放大一个像素,没办法只能想办法填坑了。
主源码key.ime.state里有个样式,库key.ime.stateBar里有个样式,我改主源码里的不起作用,只能改库里的
不用改库,例如你想改背景颜色、字体颜色,就这样写
//显示输入状态栏
import key.ime.stateBar;
imeBar = key.ime.stateBar(winform);
//修改背景颜色,格式 0xAARRGGBB
imeBar.background = 0xE5A6CAF0;
//修改字体颜色
imeBar.color = 0x110066;
改完了你要调用下面的代码重绘一下才能看到效果:
imeBar.redraw()
你想改什么样式。改源码是有点难度,要不你等一等发布了以后再说。
我主要想改圆角,边框,大小这些
这很简单,
aardio 范例里你看「高级图像控件」能找到很多例子。
给你写个具体的例子:
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="输入法状态";right=432;bottom=262)
winform.add(
edit={cls="edit";left=12;top=14;right=423;bottom=236;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=2};
imeState={cls="plus";text="中";left=402;top=298;right=458;bottom=326;align="left";bgcolor=15780518;border={radius=11};clipBk=false;db=1;disabled=1;dr=1;iconStyle={align="right";font=LOGFONT(name='FontAwesome');padding={right=11}};iconText='\uF186';textPadding={left=13};transparent=1;z=1}
)
/*}}*/
//显示输入状态栏
import key.ime.stateBar;
imeBar = key.ime.stateBar(winform);
//修改背景颜色,格式 0xAARRGGBB
imeBar.background = 0xE5A6CAF0;
//修改字体颜色
imeBar.color = 0x110066;
//修改边框样式
imeBar.border = {color=0x805F9EA0;radius=11;width=2}
//重绘
imeBar.predraw();
winform.show();
win.loopMessage();
懂了,原来是这样,感谢~
毕竟只是新窗口,所以对我来说不是很实用
我修改了字体、背景颜色的代码有效。但是修改窗口宽度(left、right、textpadding)等参数按F5重启无效,请问是什么原因?
另外怎样修改字体成微软雅黑,怎样去除标点指示符号,只显示“中/英”呢?
left,right 是坐标,不是宽度。
坐标是跟着光标自动调整的,你这时候去调当然无效。
设置宽度:
imeBar.width = 36;
居中显示:
imeBar.align = "center"`
不想看到符号,把图标颜色设为全透明就可以:
imeBar.iconColor = 0;
符号可以显示全角、半角、中英标点,大小写状态,真要关掉吗?
今天又改进了一下。
允许使用 timeout 指定显示超时,默认在切换输入法状态(中英、全半角、大小写、中英标点)后显示3秒,该值设为 0 则一直显示。
切换输入法状态显示 3 秒,设为 0 一直显示
imeBar.timeout = 0;
修改背景颜色,格式 0xAARRGGBB
imeBar.background = 0xE5A6CAF0;
修改字体颜色,格式 0xAARRGGBB
imeBar.argbColor = 0xFF000000;
水平偏移像素
imeBar.offsetX = 30
垂直偏移像素
imeBar.offsetY = 0
修改边框样式
imeBar.border = {color=0x805F9EA0;radius=11;width=2};
英文 + 半角
英文 + 全角
中文 + 中文标点
中文 + 半角标点
中文 + 全角标点
中文 + 开启大写
英文 + 开启大写
关闭输入法 + 英文键盘
方法1:
//水平偏移像素
imeBar.offsetX = -60
//垂直偏移像素
imeBar.offsetY = 50
方法2:
自己改下代码。工具 / 探测器 / 窗口探测器 按 ctrl + f12 看候选窗口类名,
win.getPos() 取窗口位置,看源代码自行修改。WubiLex 源码有取这个窗口的代码.
如果以“|”这个光标着手,以输入法的中英文状态,改变光标的外观,会不会更加不容易和输入法候选词造成干涉?
不懂代码,纯属天马行空。