【问题标题】:Is there a way to make Entry widgets in tkinter rounded or look nicer?有没有办法让 tkinter 中的 Entry 小部件变得圆润或看起来更好?
【发布时间】:2024-05-02 02:25:01
【问题描述】:

我使用 Python 编写代码,并且经常使用 tkinter 为我的应用程序创建 GUI。我更喜欢让我的 GUI 看起来圆润而现代,而不是尖角的盒子。对于按钮和标签,我倾向于使用 PhotoImage 来使用自制图像,以提供更清晰的外观。

我的 GUI 现在看起来非常现代,但唯一的问题是我有 Entry 小部件供用户输入数据。它们看起来仍然是方方正正的矩形,这使它们在现代外观中脱颖而出。我的问题是,tkinter 中有没有像 PhotoImage 这样的方法,可以让 Entry Widget 看起来更好?

这是我目前制作条目小部件的方式:

from tkinter import *

root = Tk()

e = Entry(root)
e.pack()

root.mainloop()

当我说让条目看起来更好时,我的意思是:

  • 圆角更平滑
  • 圆角边缘
  • 只是看起来不那么四四方方

我希望有人可以帮助我。

谢谢

【问题讨论】:

  • ttk 小部件看起来更“现代”。试一试。
  • 那是什么?以及如何使用它?
  • from tkinter import ttk,然后是e = ttk.Entry(root)
  • 我试过这个,但它说“未知选项-fg”

标签: python user-interface tkinter tkinter-entry photoimage


【解决方案1】:

你可以放置你的尖角图像并将你的 tkinter 条目放在上面,一定要添加与图像颜色相同的条目 bg 颜色。

import tkinter as tk
root = tk.Tk()

#read image for entry  
entry_bg_image=PhotoImage(
file=r"file.extension")

#add frame for entry
entry_frame = tk.Frame(root)
entry_frame.pack()

#place your rounded corner image.    
#for entry bg
entry_bg =tk.Label(entry_frame,
image=entry_bg_image)
entry_bg.place(rely=0 ,relx=0)

#place entry
entry = tk.Entry(entry_frame
        ,bg=same_as_image)
entry.place(relx=0,rely=0)
root.mainloop()

【讨论】:

    最近更新 更多