标签: tk-toolkit

tkinter 主目录

当拨打电话时

 tkFileDialog.askopenfile()
Run Code Online (Sandbox Code Playgroud)

tkinter 中的方法,如何将默认目录设置为用户的主目录?有没有一种方法可以独立于操作系统来完成此操作,或者这是程序员必须处理的事情?

python operating-system tk-toolkit tkinter home-directory

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

将焦点设置到 Python(和 OS X)中的 Tkinter 窗口

考虑以下 MWE:

from Tkinter import *
root = Tk()
Label(root,text="foo").pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我想设置一个新创建的Tkinter窗口,其中不包含任何“可聚焦”控件(例如前台按钮)。如果我(从 shell)运行上面的代码,窗口将处于非活动状态,因此无法对键绑定做出反应。

有什么办法可以将这样的窗口带到前台吗?

[编辑] 我正在使用 Python 2.7.5 和 OS X Mavericks。我从终端窗口运行代码,即使 Tkinter 窗口已正确创建,焦点仍保留在该窗口上。

python tk-toolkit tkinter

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

为什么 tk.IntVar 不适用于第二个 tk 窗口?

我正在尝试使用 tk.Scale 来更改 tk.IntVar。我可以在第一个 tk 窗口上执行此操作,但不能在第二个窗口上执行此操作。为什么?

看看这个可怜的样本:

import tkinter as tk

# main root
root = tk.Tk()

myvar = tk.IntVar()

def on_change(*args):
   print("Value changed to {}".format(myvar.get())) 

myvar.trace("w", on_change)

sc = tk.Scale(root, from_=1, to=10, orient=tk.HORIZONTAL, length=320, \
    variable=myvar)
sc.grid()

# second root
root2 = tk.Tk()

myvar2 = tk.IntVar()

def on_change2(*args):
   print("Value2 changed to {}".format(myvar2.get())) 

myvar2.trace("w", on_change2)

sc2 = tk.Scale(root2, from_=1, to=10, orient=tk.HORIZONTAL, length=320, \
    variable=myvar2)
sc2.grid()

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

我究竟做错了什么?我在 Mac 上使用 python 3.3。

python tk-toolkit tkinter python-3.3

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

TKinter 中的不同窗口

我无法弄清楚如何在 Tkinter 实例中运行多个应用程序。我计划有一个主窗口来调用其他应用程序来运行。

我还想让登录按钮设置用户名和密码字符串,然后关闭它自己的窗口。

我已经尝试过使用顶级窗口,但这限制了我格式化按钮的能力。例如,我不能使用框架......非常感谢有关我需要采取的方向的任何帮助。

我正在旋转我的轮子试图解决这个问题,我已经查看了许多不同的代码示例,并且我不断得到矛盾的方法来做同样的事情。我正在使用Python 3。

import tkinter as tk
import os
import json
from tkinter import Toplevel
cert = ""

username = ""
password = ""
base_url = ''
url = ''
splash_page = ''

class BuildApplication(tk.Frame):
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        self.lUSER = tk.Label(self, text="Username: ").pack(side="left")
        self.eUSER = tk.Entry(self)
        self.eUSER.pack(side="left")

        self.lPASS = tk.Label(self, text="Password: ").pack(side="left")
        self.ePASS = tk.Entry(self)
        self.ePASS.pack(side="left")

        #ive tried command= lambda: self.setCredentials(self.eUSER.get(),self.ePASS.get())
        #            command = self.setCredentials(self.eUSER.get(),self.ePASS.get())
        #          But none if it …
Run Code Online (Sandbox Code Playgroud)

python user-interface tk-toolkit tkinter python-3.x

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

如何从 Entry 小部件获取文本

我查看了 stackOverflow 上的几篇文章来解释答案,但无论我使用哪个,我都无法从我的条目小部件中获取字符串;它只是检测到一串“”

这是我的代码:

def buttonTest():
    global score
    gui.title("Test")
    for child in gui.winfo_children():
        child.destroy()
    global questionText
    global questionAnswer
    questionText = StringVar()
    questionAnswer = 0    
    question = Label(gui, textvariable = questionText, fg = "black", bg = "white")
    question.grid(row = 0, column = 1)
    userInput = StringVar()
    input = Entry(gui, textvariable = userInput)
    input.grid(row = 1, column = 0)

swapQuestion()

checkAns = Button(text = "Check answer", command = partial(checkAnswer, userInput.get(), questionAnswer), fg = "black", width=10)
checkAns.grid(row = 1, column = 2)
Run Code Online (Sandbox Code Playgroud)

tk-toolkit tkinter python-3.x

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

语法 TCL:__@_ 处缺少运算符

我试图获取列表的最大值,该列表可能包含零,0。在 Tcl 8.5 中,当我运行时:

set x {-5 -4 -3 -2 -1 0 1 2 3 4 5}
set maxx [expr max($x)]
set minx [expr min($x)]
puts "$minx $maxx"
Run Code Online (Sandbox Code Playgroud)

我收到错误:

missing operator at _@_
in expression "max(-5 -4 -3 -2 -1 _@_0 1 2 3 4 5)"
(parsing expression "max(-5 -4 -3 -2 -1 0 1...")
invoked from within
"expr "max($x)""
invoked from within
"set maxx [expr "max($x"]"
Run Code Online (Sandbox Code Playgroud)

我尝试过我能找到的语法变化和资源。

作为解决方法,我将只使用 lsort 并获取该列表的第一个/最后一个元素,但我真的想知道我在这里做错了什么:/谢谢。

syntax tk-toolkit tcl

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

如何让我的 Tcl/Tk 希望应用程序将调试内容打印到控制台?

我有这个程序:

#!/usr/local/bin/wish
package require Tk

# Window properties
wm title . "Jau"
wm minsize . 320 240

# main frame
grid [ttk::frame .f -padding "0 0 0 0"] -column 0 -row 0 -sticky nwes
grid columnconfigure . 0 -weight 1; grid rowconfigure . 0 -weight 1

# drawing canvas
canvas .f.canvas -bg darkgreen
place .f.canvas -relwidth 1.0 -relheight 1.0

# cmd
ttk::entry .f.cmd -textvar cmd -width 30
pack .f.cmd -anchor s -side top

puts stderr "hello world"
Run Code Online (Sandbox Code Playgroud)

当我运行它时,控制台中没有打印“hello world”。有什么办法可以去puts …

tk-toolkit tcl

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

取消用户窗口大小

用户手动调整 tkinter 窗口的大小后,它不再缩小以适应。

什么 tkinter 命令会将其恢复为“缩小以适应”行为?

python tk-toolkit tkinter

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

是否可以将 tkinter.simpledialog 窗口居中?

我在一个更大的脚本中包含了条件密码捕获。代码如下所示:

if thing:  # found token, don't need password
    do stuff
else:  # no token, get password in popup
    try:
        import tkinter as tk
        import tkinter.simpledialog
        tk.Tk().withdraw()
        passwd = tkinter.simpledialog.askstring("Password", "Enter password:", show="*")
        return passwd
Run Code Online (Sandbox Code Playgroud)

从功能上来说还不错,但我的大多数用户都使用分辨率为 3840x1600 的显示器,因此当左上角弹出对话框时很容易错过。

是否有一种简单的方法来覆盖 simpledialog 类以告诉它出现在监视器上的某个 X/Y 处,或者是我构建完整的唯一选择mainloop()

python tk-toolkit tkinter

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

如何为是/否用户输入创建 Tk::Dialog?

我正在尝试在 Perl 中使用简单的 Tk Yes/No 对话框。我有以下基于metacpan 示例的脚本:

#!/usr/bin/perl

use strict;
use warnings;
use Tk::Dialog;

my $mw->Dialog->new();
my $dialog = $mw->Dialog(-text => 'Save file?',
                      -bitmap => 'question',
                      -title => 'Save File Dialog',
                      -default_button => 'Yes',
                      -buttons => [qw/Yes No Cancel/]);
print "$dialog\n";
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会抛出以下错误:

Can't call method "Dialog" on an undefined value at script.pl line N.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

perl dialog tk-toolkit perltk

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