为了使ttk.Style()类的实例可用,在此

tkinter guide中说明了语法是:

import ttk

s=ttk.Style()

在IDLE中输入这些命令时,我注意到ttk.Style()实际上有一个预定义的参数,即

s=ttk.Style(master=None)

我写了以下测试脚本:

import tkinter as tk

import tkinter.ttk as ttk

class App(ttk.Frame):

def __init__(self, parent):

ttk.Frame.__init__(self, parent, style='App.TFrame', relief=tk.SUNKEN,

border=10)

self.parent = parent

self.__createStyle()

self.__createWidgets()

def __createStyle(self):

self.s = ttk.Style()

self.s.configure('.', background='orange', border=100)

self.s.configure('App.TFrame', background='yellow')

self.s.configure('Btn.TButton', background='light blue', border=10)

def __createWidgets(self):

self._label = ttk.Label(self.parent, text='Label packed in root.')

self._label.pack()

self._btn = ttk.Button(self, style='Btn.TButton', command=self.__click,

text='Button packed inside self or class App, which is a ttk.Frame')

self._btn.pack()

def __click(self):

return print('Left Button Clicked!')

class myWidget(ttk.Frame):

def __init__(self, parent):

ttk.Frame.__init__(self, parent, style='my.TFrame', relief=tk.GROOVE,

border=10)

self.parent = parent

self.__createStyle()

self.__createWidgets()

def __createStyle(self):

self.s = ttk.Style()

self.s.configure('my.TFrame', background='purple')

self.s.configure('my.TLabel', background='pink', border=10)

self.s.configure('my.TEntry', foreground='red', border=10)

def __createWidgets(self):

self._label = ttk.Label(self, style='my.TLabel',

text='myWidget Label packed in self or class myWidget, which is a ttk.Frame.')

self._label.pack()

self._entry = ttk.Entry(self, style='my.TEntry')

self._entry.pack()

if __name__ == "__main__":

root = tk.Tk()

root.title('Test Style')

root.geometry('500x150')

a = App(root)

a.pack(fill='both', expand=1)

b = myWidget(a)

b.pack()

root.mainloop()

问题1:我什么时候需要在ttk.Style()中声明主要争论?例如.在上面的脚本中,如果我在类myWidget中编写self.s = ttk.Style()和self.s = ttk.Style(master = self.parent),我会得到相同的结果(参见图1).

问题2:是否需要在自己的前缀s = ttk.Style()前缀?我得到的结果如图1所示,有和没有自己的前缀.

问题3:如果我将类myWidget中的’my.TFrame’重命名为’App.TFrame'(此类名称在App类中使用),则App类的背景颜色也变为紫色(与类myWidget颜色相同.为什么考虑到不同类中的变量名是唯一的,这是否发生了?

问题4:名称’App.TFrame’和’my.TFrame’在声明之前被调用.为什么python或tkinter没有抱怨或给出错误但允许脚本执行?

图1

图2

python ttk style_python – 关于使用ttk.Style()的问题?相关推荐

  1. python ttk.notebook_python – 无法在ttk.Notebook中看到所有选项卡

    我在 python 2.7中的ttk Notebook类的选项卡上遇到了一些麻烦. 我看不到我创建的所有标签. 我做了一个最小的代码来查看问题: from Tkinter import * impor ...

  2. python coding style_python coding style guide 的高速落地实践

    python coding style guide 的高速落地实践 机器和人各有所长,如coding style检查这样的可自己主动化的工作理应交给机器去完毕,故发此文帮助你在几分钟内实现coding ...

  3. Python编程代码规范(Google Style)

    原文:https://www.jianshu.com/p/8b6c425b65a6 在编程过程中,要遵循一定的规则,包括函数命名.变量命名.代码注释等,虽然不遵循也能使代码运行成功,但优秀的.整洁的代 ...

  4. 【Python】pyserial module sends hex style byte data to embedd system

    pyserial 模块发送hex格式的数据到嵌入式端的例程: ser = serial.Serial()def _port_open():global serprint("port open ...

  5. python中,ttk.Combobox的background、foreground和font属性的设置问题

    python中,combobox是ttk部件,其样式属性设置不同于tk部件,下面用各种方法对其进行设置,但是效果却不相同,实在费解. 1.在创建时设置样式属性:只有顶端文本框的font和foregro ...

  6. python中ttk和tkinter_Python tkinter与ttk日历

    我正在使用 this代码在我的Tkinter上创建一个简单的日历.当我在主根窗口上放置日历时,日历显示正常.因此,我决定放置另一个按钮,它将创建一个Tkinter顶层窗口并在顶层窗口上放置另外一个日历 ...

  7. tkinter.ttk — Tk themed widgets

    该tkinter.ttk模块提供对Tk 8.5中引入的Tk主题小部件集的访问.如果没有针对Tk 8.5编译Python,如果已经安装了Tile,仍然可以访问此模块.使用Tk 8.5的前一种方法提供了额 ...

  8. tkinter.ttk 资料整理+笔记(大全)

    tkinter.ttk 资料整理+笔记(大全) tkinter.ttk 一.系统常量.模块 1 str __name__ tkinter.ttk 2 str __doc__ 3 str __packa ...

  9. python3 thinter tkinter.ttk — Tk主题样式设置

    更多详情:来自TTK的英文文档链接 2.1使用TTK 导入模块: from tkinter import ttk 覆盖基本的Tk小部件,则需导入: from tkinter import * from ...

  10. python怎么读音发音英语-python style是什么意思

    1. Also, for those who feel strongly either way and only want to run Python with a specific type of ...

最新文章

  1. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle...
  2. 解决margin-top没有效果
  3. 一键实现变老变年轻——Windows 10 下部署PaddleGAN,带你感受从年少到白头的浪漫
  4. Angular页面发生更新时,更新如何从view层传递到model层
  5. 三维家可以导入别人的方案吗_三维激光扫描仪
  6. html option ajax,Ajax实现简单下拉选项效果【推荐】
  7. java 中的原始类型与原始封装类型
  8. 剑指offer之统计数组中出现次数超过一半的数字
  9. 中国天然玉米黄质市场趋势报告、技术动态创新及市场预测
  10. 获取指定年份至今年分列表
  11. java编译网络爬虫_自己动手做网络爬虫系列——1 | 学步园
  12. c语言99乘法表流程图表,C语言做99乘法表.doc
  13. 图片jpg格式怎么转换
  14. CSS transform属性+js requestAnimationFrame函数实现旋转方块以及调整转动速度
  15. caffe最优化方法
  16. exls表格搜索快捷键_excel搜索快捷键 如何在excel里快速找到需要的信息
  17. 考研可以跨计算机专业吗,食品安全的本科生考研,可以跨考计算机专业吗?
  18. 【NOIP2018】旅行 (洛谷P5049 / P5022) O(nlogn)题解
  19. html如何读取pdf,html页面读取PDF小案例
  20. Linux 安装python 3.8(Linux 的版本为 Centos 7)

热门文章

  1. ✖ subject may not be empty [subject-empty]
  2. 云服务器入门篇:搭建云服务器Java web环境(Ubuntu Server 16.04.1 LTS 64位)
  3. 战矛在线Java_战矛在线职业选择攻略 最强职业推荐
  4. Bootstrap系列之进度条(Progress)
  5. Python是个什么鬼?为什么那么多工作“会Python优先”?
  6. 手把手教你从零开始腾讯云服务器部署
  7. java 手机端开发步骤_移动端页面开发流程
  8. mysql cnf和ini区别_再谈mysql的配置文件my.ini or my.cnf (之一) .
  9. 【备忘】零基础学习java学习路线,从菜鸟到大牛的视频教程
  10. java过滤器的作用_javaweb过滤器的作用,过滤器filter的作用是什么?