TK Entry只读模式下如何改变背景颜色

4

您好,我有一个需求,需要创建一个具有只读属性的表格。但是,除了只读模式之外,这些单元格还需要具有有色背景。现在,在给定的选项下,我尝试了以下操作,但没有成功。由于我正在学习GUI设计,因此我不确定是否可以使用给定的命令来获得带有只读模式的有色背景:

package require Tk
set val1 "12";
set cols 5;
set rows 5;
set cell 0;

set mytable [table .tb -cols $cols -rows $rows]; 
set myentry [entry .e1 -textvariable val1 -state readonly -background red];
#set myentry [entry .e1 -textvariable val1 -background red];
set myentry1 [entry .e2 -textvariable val1 -state readonly -background yellow];
#set myentry1 [entry .e2 -textvariable val1 -background yellow];

$mytable window configure 0,1 -window $myentry;
$mytable window configure 3,0 -window $myentry1;

pack $mytable -fill both -expand true;

如果我使用只读状态,那么它会将单元格变成灰色并隐藏背景颜色之类的东西,但如果我去掉只读状态,背景颜色就会显示出来,但单元格是可以编辑的。我想知道是否有一种方法可以在保持只读状态的同时获得所需的单元格背景颜色。我不太了解,但是在想如果能以某种方式绑定按钮1事件,那么如果用户点击,该单元格就不会做任何操作。
在此链接中的“小部件状态”部分中提到,在禁用状态下不允许选择,但在只读状态下允许选择并使用不同的背景。但它没有说明如何设置不同的背景颜色?或者只是意味着使用不同的灰色阴影... 不确定我的想法是否正确,请问您有什么意见吗?

我在这里收集了很多信息:更改小部件颜色,但我没有添加有关旧小部件的信息。我不知道你的版本是否允许使用ttk小部件。 - Brad Lanam
1个回答

9
手册页面上的entry命令指定了-readonlybackground选项将更改只读模式下输入框的背景颜色。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接