我一直在使用Python 3.3中的Tkinter创建一个电子邮件程序。
在各个网站上看到可以使用Frame.config(background="color")
来设置Frame小部件的不同背景颜色。
然而,当我在我的框架中使用此命令时,会出现以下错误:
_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
解决了!谢谢。就是右侧的收件箱栏,需要将背景设置为白色。
place
很少是正确的选择;通常情况下,pack
和grid
比place
更好。此外,在应用程序中混合使用它们是可以的,但不能在同一个容器小部件中混合使用它们。 - Bryan Oakley