我正在尝试更改我的Tkinter应用程序的背景颜色,但对于某些小部件,它会在边缘留下白色边框.
例如,这个:
from tkinter import *
COLOR = "black"
root = Tk()
root.config(bg=COLOR)
button = Button(text="button", bg=COLOR)
button.pack(padx=5, pady=5)
entry = Entry(bg=COLOR, fg='white')
entry.pack(padx=5, pady=5)
text = Text(bg=COLOR, fg='white')
text.pack(padx=5, pady=5)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
如何设置某些Tkinter小部件的边框颜色?
假设我们将变量'a'设置为12345:
set a 12345
Run Code Online (Sandbox Code Playgroud)
现在我如何设置一个新变量'b',其中包含'a'的值和另一个字符串9876
解决方法就像是
set a "12345"
set u "9876"
set b $a$u
Run Code Online (Sandbox Code Playgroud)
但我不想指定,$u而是我想要使用直接字符串..
我ActiveTcl8.6.1.1.297588-macosx10.5-i386-x86_64-threaded在OS X 10.9.1上安装了.但是,当我idle3从终端运行启动IDLE时,IDLE窗口中会显示以下警告:
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.
Run Code Online (Sandbox Code Playgroud)
为什么我安装的较新的ActiveTcl版本无法被IDLE识别?我怎么能纠正这个?
编辑:更多细节.
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which tclsh
/usr/bin/tclsh
$ ls -l /usr/bin/tclsh*
lrwxr-xr-x  1 root  wheel  17 Jan 15 10:45 /usr/bin/tclsh -> /usr/bin/tclsh8.6
lrwxr-xr-x  1 root  wheel  67 Oct …Run Code Online (Sandbox Code Playgroud) 这是情况.我工作的公司有很多现有的Tcl代码,但有些人想要开始使用python.很高兴能够重用一些现有的Tcl代码,因为这已经花了钱.此外,一些测试设备只有Tcl API.
所以,我想到的一种方法是使用子进程模块调用一些Tcl脚本.
可以使用TCL shell(tclsh)中的光标键(如向上箭头键)获取命令历史记录.
我正在使用linux版本2.6.21在fedora上运行tclsh.
我正在编写一个实用程序(恰好在python中),它以TCL脚本的形式生成输出.给定python中的一些任意字符串变量(不是unicode),我想生成一个类似的TCL行
set s something
Run Code Online (Sandbox Code Playgroud)
...将TCL变量' s'设置为该精确字符串,无论其中包含什么奇怪的字符.没有变得太奇怪,我不想让输出比需要的更麻烦.我相信一个体面的方法
如果字符串不是空的并且只包含字母数字,而某些字符.-_(但绝对不是$"{}\)那么它可以原样使用;
如果它只包含可打印字符而没有双引号或花括号(并且不以反斜杠结尾),那么只需将{}它放在一边;
否则,""在使用\转义后放置它" { } \ $ [ ]  ,并\nnn转义为非打印字符.
问题:是否需要在双引号内转义的完整字符集?我在文档中找不到这个.我是否错过了一些东西(我几乎错过了(2)的字符串不能以\结尾).
我知道还有许多其他字符串可以引用   {},但似乎很难轻易识别它们.此外,看起来非打印字符(特别是换行符)可以使用(2)如果您不介意它们确实存在于TCL输出中.
我真的很喜欢Perl/Tk,但已经认为它是DOA.我认为Tcl::Tk并且Tkx是更好的解决方案.假设我放弃了Perl/Tk.是否是"最受支持"的路线Tcl::Tk(自2007年以来一直没有更新,其作者似乎无法联系到),或者Tkx?这些是否被积极使用/支持?
我一直在使用TCL/TK,最近开始使用TCL/TK和我的自动化应用程序,我渴望知识.
要继续使用长长的隐藏特征问题,我想知道TCL/TK的任何隐藏或方便的功能或任何简单的方法来实现一些大的操作
将列表传递给Tcl过程的规范方法是什么?
我真的很喜欢它,如果我能得到它,以便列表自动扩展为可变数量的参数.
这样的东西:
set a {b c}
myprocedure option1 option2 $a
Run Code Online (Sandbox Code Playgroud)
和
myprocedure option1 option2 b c
Run Code Online (Sandbox Code Playgroud)
是等价的.
我相信我以前见过这个,但我无法在网上找到它.任何帮助(和代码)使两个案件等效,将不胜感激.
这被认为是标准的Tcl惯例.或者我甚至吠叫错误的树?