标签: tkinter-entry

尽管没有焦点,仍然可以选择Tkinter Entry小部件

当用户选择Tkinter Entry小部件中的一部分文本时,它将突出显示.但是,当用户点击小部件时,突出显示消失.

尽管Entry小部件没有焦点,有没有办法保持所选文本突出显示?

我正在尝试创建一个不基于Tkinter菜单小部件的自定义右键单击菜单(它基于Tkinter Toplevel小部件),我希望尽管菜单具有焦点,但文本仍保持突出显示.

python focus tkinter widget tkinter-entry

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

Python tkinter get() 从另一个函数

def CreateGUI():
    WinCreate=Toplevel(master)
    WinCreate.attributes("-toolwindow",1)
    WinCreate.resizable(0,0)
    WinCreate.transient(master)
    WinCreate.grab_set()
    sideframe=Frame(WinCreate,bd=2,relief=GROOVE)
    Label(WinCreate,text="                        logbook                         ",fg="White",bg="#3b5998",font=("RoyalBavarian",20)).pack(side=TOP,fill=X)
    Label(sideframe,text="Name: ",fg="Black",font=("Tahoma",12)).grid(row=0,column=0,sticky=E)
    Label(sideframe,text="Age: ",fg="Black",font=("Tahoma",12)).grid(row=1,column=0,sticky=E)
    Label(sideframe,text="Gender: ",fg="Black",font=("Tahoma",12)).grid(row=2,column=0,sticky=E)
    Label(sideframe,text="Eye Color: ",fg="Black",font=("Tahoma",12)).grid(row=3,column=0,sticky=E)
    txtName=Entry(sideframe)
    txtAge=Entry(sideframe)
    txtEye=Entry(sideframe)
    txtName.grid(row=0,column=1)
    txtAge.grid(row=1,column=1)
    var=StringVar(sideframe)
    var.set("Male")
    optGender=OptionMenu(sideframe,var,"Male","Female")
    optGender.grid(row=2,column=1)
    txtEye.grid(row=3,column=1)
    sideframe.pack(side=LEFT,pady=7,padx=7,ipady=3,ipadx=3)
    rightside=Frame(WinCreate,height=116,width=283)
    irighttop=Frame(rightside,bd=2,relief=GROOVE)
    irightbottom=Frame(rightside,bd=2,width=274,height=50,relief=GROOVE)
    Label(irighttop,text="Username: ",fg="Black",font=("Tahoma",12)).grid(row=0,column=0,sticky=E)
    Label(irighttop,text="Password: ",fg="Black",font=("Tahoma",12)).grid(row=1,column=0,sticky=E)
    Label(irighttop,text="Confirm Password: ",fg="Black",font=("Tahoma",12)).grid(row=2,column=0,sticky=E)
    txtUsername=Entry(irighttop)
    txtPassword=Entry(irighttop)
    txtConPass=Entry(irighttop)
    txtUsername.grid(row=0,column=1)
    txtPassword.grid(row=1,column=1)
    txtConPass.grid(row=2,column=1)
    irighttop.pack(side=TOP,ipady=3,ipadx=3)
    btnCreateFinal=Button(irightbottom,text="Create",fg="Black",command=Create(txtName,txtAge,txtEye,var,txtPassword,txtConPass,txtUsername))
    btnCancel=Button(irightbottom,text="Cancel",fg="Black")
    btnCreateFinal.pack(side=LEFT)
    btnCancel.pack(side=RIGHT)
    irightbottom.pack_propagate(0)
    irightbottom.pack(side=BOTTOM,ipady=3,ipadx=3)
    rightside.pack_propagate(0)
    rightside.pack(side=RIGHT)
def Create(txtName,txtAge,txtEye,var,txtPassword,txtConPass,txtUsername):
    choice='1'
    password="blank"
    conpassword="blank2"
    #----------------------
    name=txtName.get()
    age=txtAge.get()
    gender=var.get()
    eye=txtEye.get()
    password=txtPassword.get()
    conpassword=txtConPass.get()
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果输入框位于另一个函数中,如何从输入框中获取数据?所有输入框都在 CreateGUI() 函数中。我想将变量 txtName 等传递给 Create() 函数。这个方法正确吗?

python get tkinter tkinter-entry

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

Tkinter检查输入框是否为空

如何检查Tkinter输入框是否为空?

换句话说,如果它没有分配给它的值.

python tkinter tkinter-entry

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

如何设置在 Tkinter Entry 小部件中查看文本结尾?

我正在制作一个 GUI 界面,以使我的脚本可供普通用户使用。我的问题是 - 我有一个条目小部件,当用户使用浏览按钮选择文件时,它将“文件路径”作为值。问题是条目小部件显示文件路径的开头(左端),但我更希望看到文件路径的右端。

这是我的脚本。

from Tkinter import *
from tkFileDialog import askopenfilename

app = Tk()
app.title("ABC")
app.geometry("300x100")

def browse_for_file(entry_name, filetype):
    File_path = askopenfilename(filetypes = filetype)
    entry_name.delete(0, END)
    entry_name.insert(0, File_path)

templ_filename = StringVar()
templ_entry = Entry(app, textvariable = templ_filename, width = 30)
templ_entry.grid(row = 3, column = 1, sticky=W)

filetype_fasta = [('fasta files', '*.fasta'), ('All files', '*.*')]
button_templ = Button(app, text = 'Browse', width =6, command = lambda:browse_for_file(templ_entry, filetype_fasta))
button_templ.grid(row = 3, column = 2)

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

python tkinter alignment python-2.7 tkinter-entry

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

Python 获取焦点条目名称

我试图在按下向上或向下箭头键时增加或减少条目值。为此,我需要首先找到焦点所在的条目,我正在尝试这样做“ .focus_get() ”。问题是我不知道它是如何工作的或者它返回了什么。它为每个条目返回 1 个唯一编号,例如:“.45191744”,但每次运行该程序时该编号都会更改。以下数字是运行代码时的最后 5 次尝试。".50518728" ".53009096" ".55889592" ".51891896"

如何获取焦点条目的变量名称?

这是我的代码:

def get_focus1(event):
    print("return: event.widget is", event.widget)
    print("focus is:", window2.focus_get())
    print(window2.focus_get())
    print(help(window2.Entry))

window2 = Tk()

eyear1 = Entry(window2, width=4, font=("Helvetica", 16)) #  Entry for year
eyear1.insert(10, defaultYear)
eyear1.grid(row=1, column=1)

emonth1 = Entry(window2, width=4, font=("Helvetica", 16)) #  Entry for Month
emonth1.insert(10, defaultMonth)
emonth1.grid(row=1, column=2)

eday1 = Entry(window2, width=4, font=("Helvetica", 16)) #  Entry for day
eday1.insert(10, defaultDay)
eday1.grid(row=1, column=3)

window2.bind('<Left>', get_focus1)

mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-entry

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

如何从循环中获取 tkinter 条目

我想用多个 tkinter Entry 小部件制作一个程序。我使用 for 循环来制作多个 Entry 小部件。但是我怎样才能从中获得价值呢?

我的测试代码:

from tkinter import *

root=Tk()
variables = []
entries = []
for i in range(10):
    va = StringVar()
    en = Entry(root, textvariable=va)
    en.grid(row=i+1, column=0)
    variables.append(va)
    entries.append(en)

def hallo():
    print(en.get())
button=Button(root,text="krijg",command=hallo).grid(row=12,column=0)

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

python tkinter python-3.x tkinter-entry

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

如何在tkinter Entry小部件中插入临时文本?

如何在tkinter Entry小部件中插入临时文本?

例如,我有一个Label User,旁边有一个Entry小部件,它应该"Enter your username..."在应用程序的开头有一些文本,并且在将游标放在Entry小部件上时,它应该删除"Enter your username..."并允许用户输入数据.

这是我目前的代码:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="User:")
label.pack()
entry = tk.Entry(root, bd=1, show="Enter your user name...")
entry.pack()

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

我怎样才能做到这一点?

我没有找到任何选项或方法来删除将游标放在Entry小部件上的数据.

python tkinter python-2.7 python-3.x tkinter-entry

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

tkinter Askstring 在其可见性更改之前被删除

我正在尝试制作一个弹出窗口,人们可以在其中填写输入框中的字符串。我已经经历了很多例子,但它不起作用。

我正在尝试这样做:

    var_entry = simpledialog.askstring("Test", "Test")
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed
Run Code Online (Sandbox Code Playgroud)

提前致谢!

编辑:发布错误的错误消息

string tkinter python-3.x simpledialog tkinter-entry

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

python 中带有提交按钮的输入字段?

我想创建一个密码和用户名输入字段。底部有一个“提交”按钮。这是我到目前为止所得到的,但我不知道如何使用网格:

这是将创建 1 个输入字段的代码,名称为“用户名”

from Tkinter import *
top = Tk()
L1 = Label(top, text="User Name")
L1.pack( side = LEFT)
E1 = Entry(top, bd =5)
E1.pack(side = RIGHT)
top.mainloop()
Run Code Online (Sandbox Code Playgroud)

这是我的提交按钮代码:

MyButton1 = Button(master, text="Submit", width=10, command=callback)
MyButton1.grid(row=0, column=0)
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何将这两个代码放在一起。

python tkinter button tkinter-entry

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

如何在 Python Tkinter 中更改条目小部件边框颜色

我正在开发一个具有条目小部件的程序。当用户单击按钮并且该条目小部件为空时,程序会将其边框颜色更改为红色。但是当我尝试时,边框保持相同的颜色,即黑色。

这是代码:

self.timeField = Entry(self.mfr, width=40, relief=SOLID, highlightbackground="red", highlightcolor="red")
self.timeField.grid(row=0, column=1, sticky=W)
Run Code Online (Sandbox Code Playgroud)

然后在检查它是否为空的 if 语句中将其更改为红色,但它似乎不起作用:

self.timeField.config(highlightbackground="red")
self.timeField.config(highlightcolor="red")
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么这不起作用、我做错了什么以及解决它的方法吗?提前致谢。

更新:这是按照要求的其余代码:

def start(self):
    waitTime = self.timeField.get()
    password = self.passField.get()

    cTime = str(self.tVers.get())
    self.cTime = cTime

    if waitTime.strip() != "":
        if password.strip() != "":
            if waitTime.isdigit():
                if self.cTime == "Secs":
                    waitTime = int(waitTime)
                elif self.timeVer == "Mins":
                    waitTime = int(waitTime) * 60
                else:
                    waitTime = int(waitTime) * 3600

                self.password = password

                root.withdraw()
                time.sleep(float(waitTime))
                root.deiconify()
                root.overrideredirect(True)
                root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))

                self.tfr.destroy()
                self.mfr.destroy()
                self.bfr.destroy()

                self.create_lockScreen()
            else:
                self.timeField.configure(highlightcolor="red") …
Run Code Online (Sandbox Code Playgroud)

python tkinter border widget tkinter-entry

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