快速问题 - 我正在使用menuR中的函数graphics=TRUE.对我来说,当我在linux上时,这会导致tcltk显示对话.(你知道怎么做install.packages('some_package')R弹出一个窗口,告诉你选择你要删除哪个CRAN镜像?这就是我的意思).
有时在我做出选择之后(工作正常),窗口然后拒绝消失或响应任何类型的点击 - 我可以正常继续我的R会话但是这个窗口将会徘徊,尽管我努力将其关闭(通过角落里的关闭'x'按钮,或通过对话框本身的'确定'和'取消'按钮).
有没有办法可以摧毁这个窗口,因为我没有办法处理它?我正在寻找相当于graphics.offtcltk的东西.
另外,我注意到我[tcl] grab failed: window not viewable.在使用时经常会出错menu(..,graphics=TRUE),所以这可能是相关的.
干杯.
我有一个窗口,里面有小部件.当我手动调整窗口大小时,窗口小部件会在高度减小时自行缩放,但不会在宽度更改时或高度超出初始高度时缩放.如何使窗口小部件堆叠到窗口的边框?
用于创建窗口的代码:
wm title $base "KitKite Sparam Viewer"
set frm_main [frame $base.main_frm]
pack $frm_main
grid [frame $frm_main.graph ] -row 1 -column 1
set g [sparam_graph_widget $frm_main.graph graph]
grid [set frm [frame $frm_main.frm]] -row 1 -column 2
#from and to frame
set from [frame $frm.from -relief ridge -bd 2]
set from_lbl [label $from.lbl -text "From:"]
set f_tbl_frm [frame $from.tbl_f]
set to [frame $frm.to -relief ridge -bd 2]
set to_lbl [label $to.lbl -text "To:"]
set t_tbl_frm [frame $to.tbl_t]
grid $from -column 1 …Run Code Online (Sandbox Code Playgroud) 注意:顺便说一句,我正在使用Perl 5上的Perl/Tk编写GUI.
我试图执行我的代码,但要找到此错误消息:
COUNT 0
Invalid type '-' in pack at pack2.pl line 62.
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序中的第62行:
my $be = $f1->BrowseEntry(-label => "Widget $count:",
-choices => ["right", "left", "top", "bottom"],
-variable => \$packdirs[$count], -browsecmd => \&repack)
-pack(-ipady => 5, -side => 'left');
Run Code Online (Sandbox Code Playgroud)
我的代码中没有任何问题,有人可以帮助我吗?
我有点麻烦。当我使用 askopenfilename 时,它在 Windows 和 Linux 上运行良好,但 Mac 似乎在给我指点迷津....
下面是一个例子:
... (Code before all this)
def openFile(self):
self.fileName = askopenfilename(filetypes=[("All Files", "*.*")])
... (Code after all this)
Run Code Online (Sandbox Code Playgroud)
问题是,当我单击我拥有的打开按钮时,会调用此方法,即使在 Mac 上也可以打开对话框,但对话框中的所有内容都变灰,并且不会让我选择任何文件。为什么不?我该如何解决这个问题?
在下面的代码中,单击按钮应该将黑色文本从 Hello 更改为 Goodbye。但是当我运行程序时,它立即说再见。

from Tkinter import *
from tkMessageBox import *
print "this is a test"
class Demo(Frame):
def __init__(self):
self.createGUI()
print "init"
#self.__mainWindow = Tk()
def destroy(self):
print "destroy"
def createGUI(self):
Frame.__init__(self)
self.pack(expand = YES, fill = BOTH)
self.master.title("Demo")
self.trackLabel = StringVar()
self.trackLabel.set("Hello")
self.trackDisplay = Label(self, font = "Courier 14", textvariable = self.trackLabel, bg = "black", fg = "green")
self.trackDisplay.grid(sticky = W+E+N+S)
self.button1 = Button(self, text = "Click Me", width = 10, command = self.bpress())
self.button1.grid(row = 2, …Run Code Online (Sandbox Code Playgroud) 从我读过的内容和给出的理由,我知道这种from foo import *方法是不好的做法,因为变量赋值的复杂性以及内存问题.但是,该tkinter模块是否会成为此规则的例外?
我认为在使用GUI时,可能会考虑使用相应模块中的大多数功能/方法,与之类似itertools,可能只需要访问少数几个模块(一个不需要使用permutations 和 combinations).
无论是否tkinter是例外,是否有任何模块?
我希望tk代码删除以下小部件.它毁灭了吗?
Entry .scW.sf.frame.entry -background "#ffffff"
Button .scW.sf.frame.Button -command "open"
grid .scW.sf.frame.entry -in .scW.sf.frame -row 17 -column 2 -sticky ""
grid .scW.sf.frame.Button -in .scW.sf.frame -row 17 -column 3 -sticky "w"
Run Code Online (Sandbox Code Playgroud) 我是Python的新手,但了解基础知识.我一直在看几个教程Tkinter,但即使从一开始我输入:
from Tkinter import *
root = Tk()
Run Code Online (Sandbox Code Playgroud)
它给了我错误:
>Traceback (most recent call last):
File "/Users/$Name/Desktop/PycharmProjects/untitled/Tkinter.py", line 1, in <module>
from Tkinter import *
File "/Users/$Name/Desktop/PycharmProjects/untitled/Tkinter.py", line 3, in <module>
root = Tk()
NameError: name 'Tk' is not defined
Run Code Online (Sandbox Code Playgroud)
我尝试过不同的东西,而且我已经习惯了IDLE,但它仍然不起作用.我也在使用Mac OS X El Capitan,如果这很重要的话.
我有这个代码片段:
import Tkinter as tk
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
list = ['one','disable me','two']
listbox = tk.Listbox(self,height=len(list))
for item in list:
listbox.insert(tk.END, item)
listbox.pack()
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
Run Code Online (Sandbox Code Playgroud)
是否可以禁用第二条选择线,使其无法选择?此外,是否可以以不同的(灰色)字体显示它?
我正在尝试使用tkinter创建一个简单的文本框。以下是我尝试使用的代码。
import tkinter as tk
from tkinter import simpledialog
root = tk.Tk() # Create an instance of tkinter
start_date = simpledialog.askstring(title = "Test Title",
prompt = "Entire Start Date in MM/DD/YYYY format:")
Run Code Online (Sandbox Code Playgroud)
以下是我得到的预期输出。
我的问题是,如何默认在空插槽中填充默认值,如下所示?
在R中,我可以使用以下命令轻松完成此操作。
start_date <- winDialogString("Entire Start Date in MM/DD/YYYY format:", "01/31/2018")
Run Code Online (Sandbox Code Playgroud) tk-toolkit ×10
python ×6
tkinter ×6
tcl ×3
python-3.x ×2
arguments ×1
listbox ×1
macos ×1
perl ×1
r ×1