【问题标题】:Python - Frame or Window in Tkinter GUIPython - Tkinter GUI 中的框架或窗口
【发布时间】:2021-08-29 18:22:42
【问题描述】:

美好的一天!我想问一个关于 Tkinter Frame 或 Window 的问题。它是否支持部分边框,就像我只想在底部和左侧有一个边框并且不透明度在 65% 左右?谢谢!

【问题讨论】:

  • 你能展示你的尝试吗?
  • 我认为 tkinter 不支持,但您可以创建另一个没有边框的 1 像素厚的框架,并将其背景设置为您需要的任何内容。
  • @Sujay 没有什么可以尝试的。 OP 要么知道如何获得该功能,要么不知道。要获得一个最小的工作示例,只需使用:import tkinter as tk; root = tk.Tk().

标签: python user-interface tkinter


【解决方案1】:

试试这样的:

import tkinter as tk

BORDER_THICKNESS = 3

root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack(fill="both", expand=True)

bottom_border = tk.Frame(root, height=BORDER_THICKNESS, bg="red", highlightthickness=0, bd=0)
bottom_border.pack(fill="x")

root.mainloop()

代码生成一个像这样的窗口:

红线下方的灰线是tk.Tk()的边框。

我创建了一个 3 像素厚的 tkinter.Frame,背景为红色,并确保它没有边框。在左侧添加另一条红线将是微不足道的。

关于不透明度:您可以更改框架的颜色或尝试类似this

【讨论】:

  • 谢谢@TheLizzard!我有这样的东西,我想删除上边框和右边框。而且我想让我的边框是圆形的,并且边框不透明度有 65%。它会在 tkinter 中具有功能还是我可以有什么选择?我不知道如何在此处插入图片,因为我是新手。感谢 tkinter import * root = Tk() frame1 = Frame(root, highlightbackground="#701d47", highlightthickness=4,width=600, height=100, bd= 0, bg="#ffcc70") frame1.pack () root.mainloop()
【解决方案2】:

不,tkinter 小部件不支持部分边框并且不支持不透明度。但是,您可以相当轻松地创建自己的样式或绘制自己的边框。

例如,要创建一个仅沿底部有边框的条目,您可以创建一个不带边框的条目,然后使用place 沿一个边缘创建边框。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

entry = tk.Entry(root, borderwidth=0)
border = ttk.Separator(entry, orient="horizontal")
border.place(x=0, rely=1.0, height=2, relwidth=1.0)

entry.pack(side="top", padx=20, pady=20)

root.mainloop()

【讨论】:

  • 谢谢@Bryan!您会推荐我使用另一个可以满足此需求的 GUI 小部件吗?你用的是什么图形用户界面?
  • @Nymph:我不明白你的问题。我正在使用 tkinter。我不知道您所说的“另一个 GUI 小部件”是什么意思。您可以将此技术与任何小部件一起使用。
  • 我想我找到了stackoverflow.com/questions/51425633/….. 但我认为这对我来说太超前了.. 我要感谢您回答我的询问:)
猜你喜欢
  • 2017-03-09
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 2014-06-12
相关资源
最近更新 更多