TinUI配色样式

2024-04-10 14:18
文章标签 样式 配色 tinui

本文主要是介绍TinUI配色样式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TinUI配色样式

  • 引言
  • 风格类
  • 配色
  • 完整代码
  • 效果
    • 2022-5-8
    • 2022-8-30
    • 2022-9-10
    • 2022-9-17
    • 2022-10-7
  • 结语

引言

TinUI给我们带来了现代化的组件样式,这使得tkinter窗口更加美观。但是,当我们想要整个窗口实现统一风格配色的时候,我们该怎么使用TinUI实现呢?接下来,就是简单讲解一下步骤。

风格类

一般地,我们使用一个类来为TinUI(或BasicTinUI)添加样式风格。

为了让之后的调用方便,这个类不应该是对TinUI的重写,因为这样会使得同名方法造成干扰。因此,这个类更像是一个“托管”——使用与TinUI同名的方法,但不是直接继承,而是通过对应的函数调用TinUI绘制组件,其中,样式类参数不需要使用者定义。

所以,TinUI风格类不是一个组件,而是类似于TinUIXml的“托管绑定类”。

以TinUI“明亮模式”为例,函数初始化基本如下:

class TinUILight:'''这是TinUI明亮模式的托管类,不是继承类调用时这需要注意文本和数据,样式类参数无需理会'''def __init__(self,ui:Union[TinUI,BasicTinUI]):self.ui=uiself.label='dark'

TinUIXml类很像。

配色

配色部分是我参考了一些东西的(具体什么我不说),基本的格式如下,以TinUI的按钮为例:

    def add_button(self,pos,*arg,**kw):return self.ui.add_button(pos,fg='#1b1b1b',bg='#fbfbfb',activefg='#1a1a1a',activebg='#f6f6f6',line='#cccccc',linew=1,activeline='#cccccc',*arg,**kw)

也就是位置(pos)为必选参数,样式参数由类自己定义,剩下的就交给*arg**kw参数了。

完整代码

这里是TinUI明亮模式的类源码,当然,目前我完成了TinUI(准确来说是BasicTinUI,TinUI的滚动条自己配色)的黑暗模式,其它配色以后再说。

明亮模式:

class TinUILight:'''这是TinUI明亮模式的托管类,不是继承类调用时这需要注意文本和数据,样式类参数无需理会'''def __init__(self,ui:Union[TinUI,BasicTinUI]):self.ui=uiself.label='dark'def add_button(self,pos,*arg,**kw):return self.ui.add_button(pos,fg='#1b1b1b',bg='#fbfbfb',activefg='#1a1a1a',activebg='#f6f6f6',line='#cccccc',linew=1,activeline='#cccccc',*arg,**kw)def add_checkbutton(self,pos,*arg,**kw):return self.ui.add_checkbutton(pos,fontfg='#1a1a1a',fg='#868686',bg='#ededed',activefg='#868686',activebg='#e5e5e5',onfg='white',onbg='#334ac0',*arg,**kw)def add_label(self,pos,*arg,**kw):return self.ui.add_label(pos,fg='#1a1a1a',bg='#f3f3f3',outline='#f3f3f3',*arg,**kw)def add_entry(self,pos,*arg,**kw):return self.ui.add_entry(pos,fg='#606060',bg='#fbfbfb',activefg='black',activebg='#fbfbfb',linew=2,outline='#868686',onoutline='#3041d8',*arg,**kw)def add_separate(self,pos,*arg,**kw):return self.ui.add_separate(pos,fg='#e5e5e5',*arg,**kw)def add_radiobutton(self,pos,*arg,**kw):return self.ui.add_radiobutton(pos,fg='black',bg='white',activefg='white',activebg='#4453db',*arg,**kw)def add_link(self,pos,*arg,**kw):return self.ui.add_link(pos,fg='#4f62ca',activefg='red',activebg='#eaeaea',*arg,**kw)def add_waitbar1(self,pos,*arg,**kw):return self.ui.add_waitbar1(pos,fg='#3041d8',bg='#f3f3f3',okfg='#3041d8',bd=5,*arg,**kw)def add_labelframe(self,uids:tuple,*arg,**kw):return self.ui.add_labelframe(uids,fg='#1a1a1a',bg='#f4f4f4',*arg,**kw)def add_waitbar2(self,pos,*arg,**kw):return self.ui.add_waitbar2(pos,fg='#334ac0',bg='#f3f3f3',okcolor='#3041d8',*arg,**kw)def add_combobox(self,pos,*arg,**kw):return self.ui.add_combobox(pos,fg='#1a1a1a',bg='#fbfbfb',activefg='#1a1a1a',activebg='#ededee',*arg,**kw)def add_progressbar(self,pos,*arg,**kw):return self.ui.add_progressbar(pos,fg='#868686',bg='#334ac0',back='#f3f3f3',fontc='#79b8f8',*arg,**kw)def add_table(self,pos,*arg,**kw):return self.ui.add_table(pos,outline='#dadad8',fg='black',bg='white',headbg='#f4f4f2',*arg,**kw)def add_onoff(self,pos,*arg,**kw):return self.ui.add_onoff(pos,fg='#5a5a5a',bg='#ededed',onfg='#ffffff',onbg='#4453db',*arg,**kw)def add_spinbox(self,pos,*arg,**kw):return self.ui.add_spinbox(pos,fg='#1a1a1a',bg='#fbfbfb',activefg='#818181',activebg='#f2f2f2',*arg,**kw)def add_scalebar(self,pos,*arg,**kw):return self.ui.add_scalebar(pos,fg='#3b50ba',bg='#868686',activefg='#aeb5d7',*arg,**kw)def add_info(self,pos,*arg,**kw):return self.ui.add_info(pos,fg='#0078d4',bg='#f9f9f9',info_fg='#1a1a1a',*arg,**kw)def add_menubar(self,uid,*arg,**kw):return self.ui.add_menubar(uid,fg='#1a1a1a',bg='#faf8f9',activefg='#1a1a1a',activebg='#efefef',*arg,**kw)def add_tooltip(self,uid,*arg,**kw):return self.ui.add_tooltip(uid,fg='#1a1a1a',bg='#efefef',*arg,**kw)def add_waitbar3(self,pos,*arg,**kw):return self.ui.add_waitbar3(pos,fg='#3041d8',bg='#f3f3f3',okcolor='#3041d8',*arg,**kw)def add_textbox(self,pos,*arg,**kw):return self.ui.add_textbox(pos,fg='#1a1a1a',bg='white',outline='#868686',onoutline='#3041d8',*arg,**kw)def add_scrollbar(self,pos,widget,*arg,**kw):return self.ui.add_scrollbar(pos,widget,bg='#f9f9f9',color='#8d8d8d',oncolor='#8a8a8a',*arg,**kw)

效果

以下是两个示例效果:

在这里插入图片描述在这里插入图片描述

2022-5-8

在这里插入图片描述
在这里插入图片描述

2022-8-30

在这里插入图片描述
在这里插入图片描述

2022-9-10

TotoWang-hhh提供了在Windows下自动判断系统深浅色的样式托管——themeauto.py。

2022-9-17

在这里插入图片描述

向样式展示基类(window.py)添加TinUI便捷上下翻页功能。

该功能方便了所有TinUI样式开发者。该功能不需要开发者额外添加,仅需要使用TinUI提供的展示基类窗口即可。

2022-10-7

在这里插入图片描述
在这里插入图片描述
添加listview和waitframe的样式配色。


结语

TinUI的重心还是在组件发展上,但是还是会时不时地推出新配色风格的。

对于贡献在GitHub上的TinUI开源样式,相关问题见限制类信息公告:TinUI theme,密码保护:tinuitheme。

🔆tkinter创新🔆

这篇关于TinUI配色样式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891293

相关文章

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

在项目开发中,jsp页面不会少了,如何公用页面(添加页面和修改页面)和公用样式代码(css,js)?

在项目开发中,如何公用添加页面和修改页面? <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head><title>岗位设置</title><%@ include file="/WEB-INF/jsp/public/common.jspf"%></head><body> <!-- 标

纯css实现checkbox的checked样式

纯css也能实现checked样式 今天使用微信的WEUI的checkbox的时候,发现点击checkbox是有checked和unchecked的变化的,但是想要去获得checkbox的checked状态时,发现event listener里居然没有该checkbox的click之类的事件。这才发现,weui只是纯粹的css样式,没有对应组件的js代码。那么问题来了,没有js事件,weui是如

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(className)操作CSS(4)、通过classList操作控制CSS(5)、操作表单

Android style(样式), theme(主题)资源

本文内容摘自《疯狂Android讲义 第三版-李刚著作》 样式和主题资源都用于对Android应用进行“美化”,只要充分利用Android应用的样式和主题资源,开发者就可以开发出各种风格的Android应用。 样式资源(style): 如果我们经常需要对某个类型的组件指定大致相似的格式,比如字体,颜色,背景色等,如果次都要为View组件重复指定这些属性,无疑会有大量的工作量,而且不利于项目后

鼠标移入移出,样式修改,显示隐藏提示消息

重要的有三点: 1.a标签中的ishow是自己定义的属性,自己输入值 2.a:hover表示鼠标移上去时, 3.a:hover:after{content:attr(ishow)}表示鼠标移上去后,显示提示消息 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title>实践题 </

10Python的Pandas:样式Style

Pandas 提供了多种样式选项,可以让你对数据框的显示进行格式化。这些样式可以帮助突出显示数据中的某些元素、设置颜色、格式化数字等。以下是一些常用的 Pandas 样式示例: 1. 基本样式设置 要为整个数据框应用样式,可以使用 style 属性。例如,你可以为所有的数值设置显示格式: import pandas as pd# 创建示例数据框df = pd.DataFrame({'A':