设置 tkinter ttk 框架的背景颜色

2023-11-25

我想简单地为 tkinter 窗口中的框架设置背景颜色。窗口的背景颜色已成功设置,但内部框架的背景颜色未设置。只需输入bg='color_name or color_code'不管用。

如何设置ttk框架的背景颜色?

除此之外,是否有一种方法也可以更改其他小部件选项,即选项卡栏的颜色、字体?

我尝试过使用命令bg='Color_name or color_code'并且还尝试使用frame_name=config(bg='color_name or color_code')。两者都不起作用。

from tkinter import * 
from tkinter import ttk 


window = Tk() 
window.title("Title Name") 
window.config(bg='#FFFAFA')
window.geometry('1024x800')


menubar = Menu(window) 
filemenu = Menu(menubar,tearoff=0)
menubar.add_cascade(label='File',menu=filemenu)
filemenu.add_command(label='Open')
filemenu.add_command(label='Clear')
filemenu.add_command(label='Save As')
filemenu.add_separator()
filemenu.add_command(label='Exit')


helpmenu = Menu(menubar,tearoff=0)
menubar.add_cascade(label='Help',menu=helpmenu)
helpmenu.add_command(label='Precuations')
helpmenu.add_command(label='Version Info')
helpmenu.add_command(label='Technical Support')

window.config(menu=menubar)

rows = 0
while rows<50:
    window.rowconfigure(rows,weight=1)
    window.columnconfigure(rows, weight=1)
    rows +=1

#creation of frame
mainframe = ttk.Notebook(window,width=50)
mainframe.grid(row=1,column=2,columnspan=45,rowspan=43,sticky='NESW')

#create tabs within the frame
tab1 = ttk.Frame(mainframe)
mainframe.add(tab1, text="Tab1")


tab2 = ttk.Frame(mainframe)
mainframe.add(tab2, text="Tab2")


tab3 = ttk.Frame(mainframe)
mainframe.add(tab3, text="Tab3")

tab4 = ttk.Frame(mainframe)
mainframe.add(tab4, text="Tab4")

tab5 = ttk.Frame(mainframe)
mainframe.add(tab5, text="Tab4")

window.mainloop()

使用时ttk小部件,所有样式都应该使用ttk.Style.

您需要初始化样式类s = ttk.Style(),然后可以使用以下命令更改不同小部件样式的属性s.configure('StyleName', option='value')

您可以找到默认的样式名称here。所以对于一个Frame样式名称是TFrame。当您为此样式配置选项时,所有框架都会使用它。当您想为单个框架配置选项时,可以使用表单名称在原始样式的基础上创建新样式newName.oldName。在你的情况下,这可能是Frame1.TFrame。然后,您可以通过传递告诉框架使用这种样式style='Frame1.TFrame'.

如果您在代码中使用以下内容,您将看到第一个框架是红色,第二个框架是蓝色,所有其他框架都是绿色:

# Initialize style
s = ttk.Style()
# Create style used by default for all Frames
s.configure('TFrame', background='green')

# Create style for the first frame
s.configure('Frame1.TFrame', background='red')
# Use created style in this frame
tab1 = ttk.Frame(mainframe, style='Frame1.TFrame')
mainframe.add(tab1, text="Tab1")

# Create separate style for the second frame
s.configure('Frame2.TFrame', background='blue')
# Use created style in this frame
tab2 = ttk.Frame(mainframe, style='Frame2.TFrame')
mainframe.add(tab2, text="Tab2")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 tkinter ttk 框架的背景颜色 的相关文章

随机推荐

  • 给 CSS 样式的 div 一个“border-left-image”

    只是想给网站上的主要内容 div 的左侧和右侧添加边框 我不想为每个边框设置单独的 div 而是使用border left imageCSS3 中的功能可以实现这一目标 我的代码如下 content background color 7FC
  • 将 Roslyn 编译器与 Visual Studio 2013 结合使用

    有没有办法将 Roslyn 编译器与 Visual Studio 2013 一起使用 以便我可以利用新的 C 6 功能 注意 不能使用 VS 2015 Yes 您可以使用 Visual Studio 2013 编译 C 6 代码 您只需安装
  • 斐波那契递归函数如何“工作”?

    当我读到描述函数递归的一章时 我是 Javascript 的新手 正在阅读它 它使用示例函数来查找斐波那契数列的第 n 个数字 代码如下 function fibonacci n if n lt 2 return 1 else return
  • 考虑添加 android:paddingStart="25dp" 以更好地支持从右到左布局错误

    我最近下载了一个新的ADT 每次保存我的项目后 它都会显示以下内容XML错误 但当我清理它时 同样的情况就会消失 有没有永久的解决方案 提前致谢
  • Ruby:从块中产生块?

    是否有可能lambda proc method或红宝石中其他类型的块 以屈服于另一个块 就像是 a lambda puts in a yield if block given a call puts in a s block 这不起作用 它
  • 每个块的 CUDA 线程限制

    为什么我不能使用 max ofMax dimension size of a thread block x y z 1024 1024 64 如果我使用 1024 1024 它不起作用 当我使用时 32 32 or 1 1024 等等它有效
  • Android FirebaseAuth.getCurrentUser() 从不为空

    我有一个 DispatchActivity 作为我的 Launcher Activity 其目的是检查当前是否有用户登录 如果用户已登录 我会将其发送到他们的 ProfileActivity 否则 我将它们发送到 LogInActivity
  • 动态查询 sqlalchemy 中的列子集

    假设表中只需要两列 名称和 ID 我会编写如下代码 session query User id User name all 但如果列名是动态的 def get data table columns return session query
  • C++:数组的构造函数初始化列表?

    我有一个基本问题 我有一个带有数据成员的类 double mydata N N 是模板参数 使用构造函数初始化列表将这些数据初始化为零的语法是什么 是 mydata 0 根据 C 标准 对于所有编译器也是如此 可以吗 非常感谢 不 在 C
  • 类加载器如何加载清单类路径中的类引用?

    我使用 Maven 构建了一个带有外部类路径添加的 jar添加类路径 当我使用运行该罐子时java jar artifact jar它能够从该主 jar 和 libs 目录中的所有 jar 加载类 但是如果我询问系统属性java class
  • 在会话中发出后续 POST 请求不起作用 - 网络抓取

    这就是我想做的 去here 然后点击 搜索 获取数据 然后点击 下一步 并继续点击下一步 直到页面用完 直到点击 下一步 为止的一切都有效 这是我的代码 r content 的格式在我打印两次时完全不同 这表明 GET 和 POST 请求之
  • DataGridView 中的超链接

    我正在开发 C 应用程序 它就像一个小型搜索引擎 用户输入一个单词 程序将返回包含该单词的文件 我有一个文件路径数组 作为字符串 我想将这些路径显示为DataGridView 以便当用户单击文件名时将打开该文件 注意 我正在使用 C Win
  • PHP HTTP 引荐来源网址

    我有一个接受来自远程站点的 POST 的页面 我想检测这些帖子来自的域 我意识到它可以被欺骗 但总比没有好 我尝试访问 HTTP REFERER 变量 但它只返回 null 该页面接受来自 PayPal 即时付款通知 和其他支付网关等来源的
  • 如何在 Xamarin Forms 中集成 Apple Pay?

    我正在使用 xamarin Forms 开发应用程序 现在 我需要集成 Apple Pay 我试图通过互联网查找内容 但无法找到有效的解决方案 谁能建议我如何将 Apple pay 集成到我的应用程序中 这是我的 Apple pay 代码
  • 如何在不更改部署服务器上的区域设置的情况下导入平面文件?

    我正在尝试读取 SSIS 2005 2008 中的文本文件 我创建了到该文件的连接并放置了平面文件源 它在预览中工作正常 但当我尝试运行时出现错误 Derived Column 91848 Error SSIS Error Code DTS
  • 在 C++ 中右对齐输出

    include
  • 分配内存时出现“初始化元素不是常量”错误

    1 include
  • 使用 Django 基于类的视图,如果 request.is_ajax 如何返回不同的模板

    我发现 Django 的 request is ajax 是一种非常有用的方法 可以通过 JS 添加渐进式增强 并且在我的观点中仍然保持 DRY 但是 我想使用基于类的视图 并使用不同的模板进行渲染 如果 request is ajax 我
  • 限制 Visual Studio 2015 中 Visual Basic 的新语言功能

    我目前正在与一个开发团队一起开发一个 Visual Basic 项目 其中一些开发人员将能够在 Visual Studio 2015 发布后立即迁移到该项目 而另一些开发人员将在 Visual Studio 2013 上停留几个月 在使用
  • 设置 tkinter ttk 框架的背景颜色

    我想简单地为 tkinter 窗口中的框架设置背景颜色 窗口的背景颜色已成功设置 但内部框架的背景颜色未设置 只需输入bg color name or color code 不管用 如何设置ttk框架的背景颜色 除此之外 是否有一种方法也可