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

相关文章

在项目开发中,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':

使用 Java 为图片添加各种样式的水印

在互联网时代,图像的版权保护变得越来越重要。水印作为一种常见的图像保护手段,可以有效防止未经授权的复制和使用。在本文中,我们将详细探讨如何在 Java 中为图片添加各种样式的水印,包括文本水印、图像水印、平铺水印等。通过这一系列的示例和代码实现,您将掌握如何利用 Java 来创建和应用水印,为您的图片增添一层保护。 1. 简介 水印是一种覆盖在图像表面上的标识,通常以文字或图像的形式存在。其主

鸿蒙图表MPChart自定义样式(五)左y轴显示数值,右y轴显示百分比

左y轴数值不变,右y轴改成百分比,需要通过自定义RightAxisFormatter实现IAxisValueFormatter接口,将右y轴的数值改成百分比文本,RightAxisFormatter类如下: class RightAxisFormatter implements IAxisValueFormatter {maxNumber: number = 0;constructor(ma

c# Chart设置样式

一、chart属性熟悉 能够对C# chart控件属性熟悉起帮助的code, 现在分享给大家,Chart Operate Demo Code Download,如有帮助,别忘点个赞. 有关MS_Chart的Control范围、ChartArea范围、InnerPlotArea范围,及Lengend、刻度与标签的位置关系如下图所示。以便让大家有个清晰的认识。   Chart

【CSS】background样式没有生效

1. 问题背景 设置了background-size:"100% 100%" 没有生效。 background: `url(${this.getUrl(this.state.scenelist.length > 1 ? item.bannerLongUrl : item.bannerShortUrl)})`,\background-size:"100% 100%" 2.分析 2.1 结