gpt4 book ai didi

python - 如何在 Tkinter 中更改 Frame 的背景?

转载 作者:IT老高 更新时间:2023-10-28 20:44:45 25 4
gpt4 key购买 nike

我一直在使用 Python 3.3 中的 Tkinter 创建一个 Email 程序。在各种网站上,我看到 Frame 小部件可以使用 Frame.config(background="color") 获得不同的背景。但是,当我在我的框架中使用它时,会出现以下错误:

_tkinter.TclError: unknown option "-Background"

执行以下操作时不起作用:

frame = Frame(root, background="white")

或者:

frame = Frame(root)
frame.config(bg="white")

我想不通。我会发布我的整个源代码,但我不希望它暴露在互联网上,但是框架创建是这样的:

mail1 = Frame(self, relief=SUNKEN)
mail1.pack()
mail1.place(height=70, width=400, x=803, y=109)
mail1.config(Background="white")

我尝试了多个选项来尝试修改背景。该框架就像一个环绕收件箱的电子邮件预览。

如果需要,这是我导入模块的方式:

import tkinter, time, base64, imaplib, smtplib
from imaplib import *
from tkinter import *
from tkinter.ttk import *

以下是完整的回溯:

Traceback (most recent call last):
File "C:\Users\Wessel\Dropbox\Python\Main\Class Ginomail.py", line 457, in <module>
main()
File "C:\Users\Wessel\Dropbox\Python\Main\Class Ginomail.py", line 453, in main
app = Application(root) #start the application with root as the parent
File "C:\Users\Wessel\Dropbox\Python\Main\Class Ginomail.py", line 60, in __init__
self.initINBOX()
File "C:\Users\Wessel\Dropbox\Python\Main\Class Ginomail.py", line 317, in initINBOX
mail1.config(bg="white")
File "C:\Python33\lib\tkinter\__init__.py", line 1263, in configure
return self._configure('configure', cnf, kw)
File "C:\Python33\lib\tkinter\__init__.py", line 1254, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-bg"

使用答案中的代码给出以下错误:

  File "C:\Users\Wessel\Dropbox\Python\Main\Class Ginomail.py", line 317, in initINBOX
mail1 = Frame(self, relief=SUNKEN, style='myframe')
File "C:\Python33\lib\tkinter\ttk.py", line 733, in __init__
Widget.__init__(self, master, "ttk::frame", kw)
File "C:\Python33\lib\tkinter\ttk.py", line 553, in __init__
tkinter.Widget.__init__(self, master, widgetname, kw=kw)
File "C:\Python33\lib\tkinter\__init__.py", line 2075, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: Layout myframe not found

解决了!谢谢。它右侧的收件箱栏,背景需要是白色的。 Happy with the results, lets work on that inbox scrolling.

最佳答案

问题的根源在于您在不知不觉中使用了 ttk 包中的 Frame 类,而不是 tkinter 包中的类。 ttk 的那个不支持背景选项。

这是您不应该进行通配符导入的主要原因——您可以覆盖类和命令的定义。

我建议像这样进行导入:

import tkinter as tk
import ttk

然后在小部件前面加上 tkttk :

f1 = tk.Frame(..., bg=..., fg=...)
f2 = ttk.Frame(..., style=...)

然后,您使用的小部件会立即变得明显,而只需多输入一点点。如果你这样做了,你的代码中的这个错误就不会发生了。

关于python - 如何在 Tkinter 中更改 Frame 的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com