午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

Python GUI 編程:tkinter 初學者入門指南——單行文本框

 信息科技云課堂 2024-10-08 發(fā)布于山東

在本文中,將介紹如何使用 tkinter Entry 小部件。tkinter Entry 小部件允許創(chuàng)建能夠輸入的單行文本框。

要創(chuàng)建 Entry 單行文本框,請按如下方式使用構造函數(shù):

textbox = tk.Entry(master, **options)

通常,將 Entry 單行文本框輸入的當前值與 StringVar 對象相關聯(lián)。

創(chuàng)建 Entry 單行文本框

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 單行文本框演示')

text = tk.StringVar()
entry = tk.Entry(
    root,
    textvariable=text,
)
entry.pack(padx=10, pady=10, expand=True)

root.mainloop()

獲取文本框內(nèi)容

要將 Entry 單行文本框中的當前文本作為字符串獲取,可以使用 get() 方法。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 單行文本框演示')

def print_entry():
    entry_text=entry.get()
    print(entry_text)

text = tk.StringVar()
entry = tk.Entry(
    root,
    textvariable=text,
)
entry.pack(padx=10, pady=10, expand=True)

button = tk.Button(
   root, 
   text="輸出"
   command=print_entry
)
button.pack(ipadx=5, ipady=5, expand=True)

root.mainloop()

以上示例中,創(chuàng)建一個按鈕,用于將 Entry 單行文本框的文本內(nèi)容輸出到 shell。

單行文本框獲取焦點

為了提供更好的用戶體驗,可以讓窗口中的第一個單行文本框自動獲得焦點,直接接受用戶輸入??梢允褂?focus() 方法。

作為密碼輸入框使用

要在單行文本框上輸入時隱藏敏感信息,例如密碼,可以添加參數(shù):show='*'。輸入密碼時,它不會顯示實際字符,而是顯示參數(shù)中指定的星號。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 單行文本框演示')

text = tk.StringVar()
entry = tk.Entry(
    root,
    textvariable=text,
    show='*'
)
entry.pack(padx=10, pady=10, expand=True)

entry.focus()

root.mainloop()

其他可選參數(shù)及方法

  • bg : 背景顏色。

  • bd : 邊框大小。默認值為 2 像素。

  • font :文本字體。

  • fg :文本顏色。

  • justify :文本對齊方式: CENTER、LEFT 或 RIGHT。

  • width:文本框?qū)挾取?/p>

  • delete(index)方法:從文本框中刪除給定索引的字符。

  • insert(index,'name')方法:在給定索引處插入字符串。

只讀文本框

如果希望顯示的文本可以選擇和復制但不能修改,可以將文本框設置為只讀。這在用戶需要能夠查看數(shù)據(jù),還有保證數(shù)據(jù)完整性時非常有用。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 單行文本框演示')

text = tk.StringVar()
entry = tk.Entry(
    root,
    textvariable=text,
)
entry.insert(0"該文字只讀!")
entry.config(state='readonly')
entry.pack(padx=10, pady=10, expand=True)

root.mainloop()

文本框文本校驗

如果想限制文本框文本類型的輸入,可以通過驗證來執(zhí)行此操作。例如,一個只接受整數(shù)文本框。可以使用參數(shù) validatecommand、validate等檢查其有效性。

以下示例中,文本框只接受數(shù)字輸入,不能輸入其他字符。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 單行文本框演示')

def callback(input): 
    return input.isdigit()

text = tk.StringVar()
reg = root.register(callback) 
entry = tk.Entry(root, textvariable=text, width=30, validate="key", validatecommand=(reg, '%P'))
entry.pack(padx=10, pady=10, expand=True)

root.mainloop()

登錄窗口示例

import tkinter as tk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('登錄窗口演示')

email = tk.StringVar()
password = tk.StringVar()

def login_clicked():
    msg = f'電子郵件:{email.get()}\n 密碼:{password.get()}'
    showinfo(title='登錄信息', message=msg)

email_label = tk.Label(root, text="電子郵件:")
email_label.pack(pady=10)

email_entry = tk.Entry(root, textvariable=email, width=30)
email_entry.pack()
email_entry.focus()

password_label = tk.Label(root, text="密碼:")
password_label.pack()

password_entry = tk.Entry(root, textvariable=password, width=30, show="*")
password_entry.pack()

login_button = tk.Button(root, text="登錄", command=login_clicked, width=30)
login_button.pack(pady=10)

root.mainloop()

點亮在看,你最好看!

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約