相关疑难解决方法(0)

如何在修改Tkinter Entry小部件时获取事件回调?

正如问题所说的那样.Text小部件有<<Modified>>事件,但Entry小部件似乎没有.

python tkinter

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

限制Tkinter Entry小部件中的值

我需要将Entry小部件中的值限制为仅限数字.我实施的方式是:

import numpy as np
from Tkinter import *;
import tkMessageBox;

class window2:

    def __init__(self,master1):

        self.panel2=Frame(master1)
        self.panel2.grid()

        self.button2=Button(self.panel2,text="Quit",command=self.panel2.quit)
        self.button2.grid()

        self.text1=Entry(self.panel2)
        self.text1.grid()
        self.text1.bind('<KeyPress>', self.keybind1)
        self.text1.focus()

    def keybind1 (self,event):
        if event.int in np.linspace(0,9,10):
            print event.int


root1=Tk()
window2(root1)
root1.mainloop()
Run Code Online (Sandbox Code Playgroud)

我不断收到Event实例没有属性'int'的错误消息.我该怎么办?

python validation tkinter

10
推荐指数
3
解决办法
4万
查看次数

为什么 tkinter 输入验证需要调用 register()?

def check_the_input_only_allows_digits_only(inp):
    # A function for validating the input, the purpose of this is to let
    # the user enter only digits.
    if inp.isdigit() or inp is "" or inp == "\b" or inp is None:
        return True
    else:
        return False


reg = creditor.register(check_the_input_only_allows_digits_only)
amount.config(validate = "key",validatecommand =  (reg,"%P"))
Run Code Online (Sandbox Code Playgroud)

我知道该函数 check_the_input_only_allows_digits_only已注册,并且对于用户输入的每个字符,都会调用该函数并验证输入。但是为什么每次用户输入内容时.register都不能调用该函数.register?引擎盖下到底发生了什么?

tkinter python-3.x

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

是否可以在Tkinter中按名称搜索小部件?

如果我在Tkinter中创建一个小部件,我可以指定参与tcl/tk"小部件路径"概念的小部件名称.例如:

from Tkinter import *
button = Button( Frame( Tk(), name = "myframe" ), name = "mybutton" )
str( button ) == ".myframe.mybutton"
Run Code Online (Sandbox Code Playgroud)

是否有可能通过它的名字获取一个小部件,在我的例子中是"mybutton"?

python tkinter

5
推荐指数
2
解决办法
5675
查看次数

Python Tkinter:删除字符串的最后一个字符

我正在创建一个只允许输入数字的条目.如果该字符不是整数,我目前仍然在删除刚刚输入的字符.如果有人将"BLANK"替换为需要进行的操作,那将会有很多帮助.

import Tkinter as tk

class Test(tk.Tk):

    def __init__(self):

        tk.Tk.__init__(self)

        self.e = tk.Entry(self)
        self.e.pack()
        self.e.bind("<KeyRelease>", self.on_KeyRelease)

        tk.mainloop()



    def on_KeyRelease(self, event):

        #Check to see if string consists of only integers
        if self.e.get().isdigit() == False:

            self.e.delete("BLANK", 'end')#I need to replace 0 with the last character of the string

        else:
            #print the string of integers
            print self.e.get()




test = Test()
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-entry

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

将默认值插入 tkinter Entry 会停止验证

我一直在关注此处对输入框的验证。下面的代码来自带有附加条件的答案,即如果输入的值是,'Q'则程序将添加'test'到 Entry 值的开头。

但是,一旦插入此值,所有验证似乎都将超出窗口,并且条目允许大写值。对我的程序进行的一些测试显示验证命令(OnValidate在本例中)不会在 Entry 的任何其他事件(键、焦点输入/输出等)上被调用。

import Tkinter as tk
class MyApp():
    def __init__(self):
        self.root = tk.Tk()
        vcmd = (self.root.register(self.OnValidate), 
                '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')
        self.entry = tk.Entry(self.root, validate="key", 
                              validatecommand=vcmd)
        self.entry.pack()
        self.root.mainloop()

    def OnValidate(self, d, i, P, s, S, v, V, W):
        if S == "Q":
            self.entry.insert(0,"test")
        # only allow if the string is lowercase
        return (S.lower() == S)

app=MyApp()
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是我希望 Entry 显示一个默认值,如果它的值在用户进行任何更改后保留为空。(即我的情况是if not P在焦点上)

任何想法如何实现这一点或上面出了什么问题,非常感谢。

python validation tk-toolkit tkinter

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

Tkinter 输入字符限制

我只想在 TKinter 输入框中允许一个字符。我该怎么做?

python tkinter

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

如何在tkinter Entry小部件中仅插入一些指定的字符

我有一个n Entry小部件列表.用户应该只能键入以下字符:"V","F","".如果用户键入其中一个字符,则焦点应从条目#x传递到条目#x + 1,否则焦点应保持原位(在条目#x上)并且应丢弃输入.

我无法丢弃错误的输入:如果用户按下与允许的键不同的键,则Entry字段获取该键,但命令.delete(0,END)不起作用,因为小部件本身没有然后记住按下的键.

我该怎么办?

python tkinter

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

Tkinter 条目验证

我正在使用 Tkinter 在 Python 3.6 中编写程序,其中客户有多个(11)个输入字段。我希望这些输入字段只接受整数,并且还能够定义最大字符数。

我已经有一个功能可以做到这一点。但此功能仅适用于一个输入字段。我尝试通过调用函数来输入变量,因此它会更改另一个输入字段。我无法做到这一点。

这是我的功能,适用于 1 个输入字段。

    def limitMuntgeld(self, *args):
        value = self.invoerM.get()
        if len(value) > 5:
            self.invoerM.set(value[:5])
        if value.lower() in "abcdefghijklmnopqrstuvwxyz-=[];/":
            self.invoerM.set(value[:0])
Run Code Online (Sandbox Code Playgroud)

这是与函数一起使用的示例输入字段代码

self.invoerMuntgeld = Entry(self, font=('Arial', 14), textvariable=self.invoerM)
Run Code Online (Sandbox Code Playgroud)

这与下面发布的输入字段上的跟踪相结合。

self.invoerM = StringVar()
self.invoerM.trace('w', self.limitMuntgeld)
Run Code Online (Sandbox Code Playgroud)

我也用 vcmd 和 validatecommand 尝试过。然而,没有好的结果。我的最终结果将是一个处理所有输入字段的函数。如果有人有任何建议,我会全神贯注!

tkinter python-3.x tkinter-entry

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

GUI(输入和输出矩阵)?

Python 3.3.2 Hello.My问题 - 需要为输入数据(矩阵或表)创建GUI.并从此表单数据中获取.例如:

float

完美的解决方案是输入形式的限制(只有浮动).

问题:我能用什么?Tkinter没有表.. wxPython不支持Python 3. PyQt4?(mb你有例子如何从tabel中获取数据A=[[1.02,-0.25,-0.30,0.515],[-0.41,1.13,-0.15,1.555],[-0.25,-0.14,1.21,2.780]]?)
任何人都有想法?

python user-interface tkinter pyqt4

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