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

相关文章

CSS中的表格专有属性:提升表格布局与样式的灵活性

CSS为表格提供了一系列专有属性,这些属性使得开发者能够对表格的布局和样式进行精细控制。在本文中,我们将介绍几个关键的CSS表格属性:table-layout、border-spacing、border-collapse 和 empty-cells,以及它们如何影响表格的显示效果。 1. table-layout table-layout属性定义了表格的布局算法,主要有两个值: auto:浏

为导航栏的li加上.selected样式

为导航栏的li加上.selected样式 HTML <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>myNav</title><link rel="stylesheet" type="text/css" href="main.css"></head><body><div class="nav-wr

iOS UITableView扩展样式使用之初级剑客篇(欢迎提建议和分享遇到的问题)

1.tableHeaderView图片显示及如下效果: 向下拖动ScrollView时,ScrollView上方的图片会随着手指的拖动而放大并且变模糊。松开手指之后,图片随着ScrollView的回复原来位置而恢复原样。这种效果出现在Twitter App中。 完成像这种UITableView顶部有图片而且下拉时图片会有拉伸效果的可以使用:

利用CSS样式干掉Shiny 一些讨厌的空隙

在我的「R shiny练习」一个在线火山图的Shiny应用中,我在ui部分一开始用的是fluidePage()结果页面中就有一个比较难看的空隙 间隙 为了解决这个问题,当时我用了fillPage(), 虽然空隙没了,但是对于一些屏幕比较小的电脑,只能通过缩小页面才能看到所有内容。 为了解决这个问题,我就去学习了一点CSS样式的知识。CSS处理每个网页元素时,都会认为它们包

CSS盒模型--边框设置:border: 1px solid red(像素 样式 颜色 ),border-bottom:1px dotted #ccc

盒模型--边框(一) 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。 如下面代码为div来设置边框粗细为2px、样式为实心的、颜色为红色的边框: div{border:2px solid red;} 上面是border代码的缩写形式,可以分开写: div{border-width:2px;border-style:solid;bord

jsp样式被覆盖,jsp调试的时候多了element.style

jsp样式被覆盖,jsp调试的时候多了element.style  阻碍了我引入的css 有时在写css样式,并调试时,会出现很不可思议的现象,比如:我们定义了一个<div class=”aaa”></div>,在css中定义样式,.aaa{width:500px;},但预览时该div块却没有定义的那么宽,这时用firebug调试发现,css样式中多了一句:element.style{wi

【JavaScript脚本宇宙】革新前端样式:CSS-in-JS库大比拼与最佳实践

解锁响应式设计的潜力:使用CSS-in-JS库构建动态样式 前言 随着前端技术的发展,CSS-in-JS(CSS in JavaScript)逐渐得到开发者的青睐。它通过将CSS样式定义在JavaScript中,利用JavaScript的强大特性,实现了更灵活、动态的样式管理方式。本文将介绍几个流行的CSS-in-JS库,包括styled-components、Emotion、JSS、Lina

HTML基础知识一(HTML、常见方式、文档结构、lt;metagt;、 网站文件命名、文本修饰、文本样式、段落标记、居中标记、水平线标记、特殊字符、列表、图像)

1、 HTML 全称:Hyper Text Mark-up Language超文本标记语言 2、 发展史: 3、 常见方式: 方法一、记事本 方法二:Dreamweaver 方法三:web浏览器动态生成 4、 文档结构: <html></html>网站文件的开始和结束 <head></head>网站文件的头部信息 <title></title>网站文件的标题 <body></

CSS三种样式

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>/* 内部样式 *//* css 注释 */div {background:orange;}/* 类选择器 */.abc{font-size:30px;background:red;}</style><!-- 外部样式

QT QML 界面设计教程8——图标(图片)标签样式

MyIconLabel.qml import QtQuick 2.14//Item可以替换为Rectangle以设置背景色Item{id: controlproperty alias source: _icon.sourceproperty alias imageWidth: _icon.widthproperty alias imageHeight:_icon.heightproperty