标签: tk-toolkit

为什么小部件的创建顺序很重要?

以下代码工作正常.它显示一个panedwindow,顶部有一个蓝色框,下面是一个绿色框:

panedwindow .root -orient vertical -showhandle true -background red
frame .top -background blue -width 100 -height 100
frame .bot -background green -width 100 -height 100
.root add .top .bot
pack .root -expand true -fill both
Run Code Online (Sandbox Code Playgroud)

但是,当我panedwindow向下移动命令时,事情就会停止工作.顶部的蓝色框未显示.相反,panedwindow它本身的红色闪耀着:

frame .top -background blue -width 100 -height 100
panedwindow .root -orient vertical -showhandle true -background red
frame .bot -background green -width 100 -height 100
.root add .top .bot
pack .root -expand true -fill both
Run Code Online (Sandbox Code Playgroud)

为什么会这样?可以将panedwindow真的只管理后创建的小部件?我已经看到了与打包器类似的行为,它将拒绝打包-in …

tk-toolkit tcl

1
推荐指数
1
解决办法
296
查看次数

无法读取perl/tk TEXT中的文件内容

我知道这不是一个新问题..但是我尝试按照解决方案从其他帖子中解决...但是我的文本区域没有任何内容可以打印...如果我直接在我的文本文件上打印一个句子..它的工作......为什么?

#!/usr/local/bin/perl
use Tk;
use File::Tail;

#Main Window
my $mw = new MainWindow;
$mw-> title ("Packet Analyzer Tool");

my $frm_1 = $mw -> Frame() -> pack();
my $frm_2 = $mw -> Frame() -> pack();
my $frm_3 = $mw -> Frame() -> pack();
my $frm_4 = $frm_3 -> Frame(-relief => 'groove', -borderwidth =>2) -> pack(-side => "left");
my $frm_5 = $frm_3 -> Frame() -> pack(-side => "right",-after => $frm_4);

my $but1 = $frm_1 -> Button(-text => "Start", 
-command =>\&push_start)
-> pack(-side …
Run Code Online (Sandbox Code Playgroud)

perl tk-toolkit

1
推荐指数
1
解决办法
574
查看次数

在Tcl/Tk中抓取一个新窗口

我有一个GUI,在其中我有一个在新窗口中打开的属性窗口.在某些时候,(随机而不是确定性地可重复)当我打开窗口时,它会给出以下错误:

grab failed: window not viewable
Run Code Online (Sandbox Code Playgroud)

除了打印该消息之外,它不会干扰程序的正常功能,也不会对任何内容产生任何影响.

创建新窗口的代码是:

proc _prop_menu_make_top  {{elem {}}}  {
    toplevel .prop_menu
    #...initialize some variables...

    wm title .prop_menu "Properties for $_prop_attr(name)"

    #...create and display the window widgets...

    bind    .prop_menu  <Key-KP_Enter>  {_prop_menu_ok_button}
    bind    .prop_menu  <Return>        {_prop_menu_ok_button}
    bind    .prop_menu  <Escape>        {_prop_menu_cancel_button}

    # catch presses on the window's `x` button
    wm protocol .prop_menu WM_DELETE_WINDOW {
        _prop_menu_cancel_button
    }

    # make the top window unusable
    center_the_toplevel .prop_menu

    focus .prop_menu.main_frame.model_name.entry
    grab release .
    grab set .prop_menu
}

proc center_the_toplevel { window } { …
Run Code Online (Sandbox Code Playgroud)

tk-toolkit tcl

1
推荐指数
1
解决办法
3625
查看次数

TCL/TK 如何将多个参数传递给按钮回调函数?

我有这样的代码

  proc press2 {v sbit} {
                puts $v
                puts $sbit
        }

                   :
                   :
button .t.ok2 -text "OKI" -command "press2 $v $sbit"
Run Code Online (Sandbox Code Playgroud)

有了这个,wrong # args: should be "press2 v sbit" 如果我将其更改为 button .t.ok2 -text "OKI" -command {press2 $v $sbit}I get can't read "v": no such variable,我就会得到错误,最后我尝试button .t.ok2 -text "OKI" -command [press2 $v $sbit]了没有出现任何错误但也不起作用的方法。只是问有没有可用于 TCL/TK 的好的文档?通常的手册页和谷歌搜索对我没有多大帮助。我通过反复试验做很多事情。

tk-toolkit tcl

1
推荐指数
1
解决办法
1915
查看次数

将tkinter的intvar添加到整数

我在添加从Entry框中获取的值并将其添加到现有数字时遇到了一些麻烦.在这种情况下,我希望将"更改速度"框的值添加到机器人当前速度.运行时,我的代码会产生错误:

TypeError:+ =:'int'和'IntVar'的不支持的操作数类型.

下面是生成输入框的代码:

change_speed_entry = ttk.Entry(main_frame, width=5)  # Entry box for linear speed
change_speed_entry.grid()
data = tkinter.IntVar()
change_speed_entry['textvariable'] = data
Run Code Online (Sandbox Code Playgroud)

接下来是我试图操纵结果的地方.这是一个类中的方法.该类的所有其他方法都能正常工作:

def changeSpeed(self, delta_speed):
    self.speed += delta_speed
Run Code Online (Sandbox Code Playgroud)

python user-interface tk-toolkit tkinter

1
推荐指数
1
解决办法
2万
查看次数

如何创建浏览按钮来选择 tcl/tk 中的文件夹

如何使用浏览按钮选择文件夹/文件。我想知道按钮的-命令中应该放什么?

tk-toolkit tcl

1
推荐指数
1
解决办法
2391
查看次数

如何将组合键绑定到方法?

如何绑定Ctrl + Shift + S到方法?基于此,我尝试了以下代码,但它不起作用(打印语句未运行):

import tkinter as tk

def key(event=None):
    print("It works!")

root = tk.Tk()

frame = tk.Frame(root, width=100, height=100)
frame.focus_set()
frame.bind('<Control-Shift-s>', key)
frame.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

另外,我想知道有关如何绑定组合键(如果可能)的一般答案。

python tk-toolkit tkinter key-bindings

1
推荐指数
1
解决办法
2848
查看次数

Tkinter widget.cget('变量')

如何使用方法获取对小部件控制变量的引用cget('variable')?我正在寻找一种使用返回的对象来cget('variable')查找关联tkinter.IntVar对象的解决方案。

import tkinter as tk

root = tk.Tk()

var = tk.IntVar()
print('tkinter variable is of type', type(var)) # <class 'tkinter.IntVar'>

button = tk.Checkbutton(root, text='Checkbutton 1', variable=var)
button.pack(side=tk.TOP, padx=10, pady=10)

# Now I attempt to retrieve "var", using cget('variable').
var2 = button.cget('variable')

print('cget("variable") returns an object of type', type(var2)) # <class '_tkinter.Tcl_Obj'>
print(var is var2) # False

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter tcl

1
推荐指数
1
解决办法
1万
查看次数

如何在第二台显示器/显示器上打开 Tkinter GUI?(视窗)

如果可用,我想合并一种在第二台显示器上打开 GUI 的方法。我想添加某种类型的错误处理,因此如果有第二台显示器,请使用它,否则在检测到的显示器的中心打开。这能做到吗?

python user-interface tk-toolkit tkinter

1
推荐指数
1
解决办法
400
查看次数

使用Tcl/Tk打开新窗口时,窗口无法使用

我正在使用Tk/Tcl构建GUI.在使用过程中,我创建了一个新窗口,其中包含一些属性供用户填充.我希望我的主窗口在关闭属性窗口的所有时间都不可用,并且只有当它关闭才能恢复使用主窗口的选项时.

我该怎么做?

我使用创建新窗口 toplevel .prop_menu

user-interface tk-toolkit window tcl

0
推荐指数
1
解决办法
298
查看次数

标签 统计

tk-toolkit ×10

tcl ×6

python ×4

tkinter ×4

user-interface ×3

key-bindings ×1

perl ×1

window ×1