Python+PYGObject/PYGtk+CSS样式--2024python示例

隔久点不用老是会忘,留个笔记。。

Python+PYGObject/PYGtk,加载 CSS 样式的演示代码

demo 运行的效果截图:

#!/usr/bin/env python3
import sys
import gigi.require_version("Gtk", "3.0")
from gi.repository import GLib, Gtk, Gioclass MyApplication(Gtk.Application):def __init__(self):super().__init__(application_id="com.example.MyGtkApplication")GLib.set_application_name('My Gtk Application')def do_activate(self):window = Gtk.ApplicationWindow(application=self, title="Hello World")window.present()button = Gtk.Button(label="Python+PyGObject+CSS修改背景色")button.set_name("bricks-button")button.set_halign(Gtk.Align.CENTER)button.set_valign(Gtk.Align.CENTER)button.set_size_request(250, 84)window.add(button)window.show_all()strcss="""#bricks-button {color: #F55;background-color: #eef;background-image: -gtk-scaled(url('resource://css/brick.png'), url('resource://css/brick2.png'));background-repeat: no-repeat;background-position: center;/* 测试 */}"""strpath="./play.css"fp = open(strpath, 'w')fp.write(strcss)fp.close()provider = Gtk.CssProvider()provider.connect("parsing-error", self.show_css_parsing_error)# fname = Gio.file_new_for_path('play.css')# provider.load_from_file(fname)# https://docs.gtk.org/gtk4/method.CssProvider.load_from_file.html# load_from_path, load_from_file, load_from_stringprovider.load_from_path(strpath)self.apply_css(window, provider)def show_css_parsing_error(self, provider, section, error):print(error.message)def apply_css(self, widget, provider):Gtk.StyleContext.add_provider(widget.get_style_context(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)if isinstance(widget, Gtk.Container):widget.forall(self.apply_css, provider)app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)

官方文档:CssProvider — GNOME Python API

Deprecated since version 4.12: Use load_from_string or load_from_bytes instead

Styling GTK3 in Python with CSS (Shallow Thoughts)

控件对应的CSS选择器名称(Built-in Class Names)

css = 'button { background-color: #f00; }'

CSS选择器名称可以改(User-set Class Names)

    button_context = button.get_style_context()button_context.add_class("whitebutton")

控件名称,映射为 HTML 标签的ID,在CSS中使用井号选择器
(Widget Names, like CSS ID)

    label = gtk.Label()label.set_use_markup(True)label.set_line_wrap(True)label.set_name("red_label")mainbox.pack_start(label, False, False, 0)css = '#red_label { background-color: #f00; }'dflabel = gtk.Label() 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/6389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程控制【Linux】

文章目录 进程终止进程等待 创建一批子进程 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #define N 5void runChild() {int cnt 10;while (cnt ! 0){printf("i am a child : %d , ppid:%d\n", getpid(), getppid());sleep(1);c…

数据结构之链表深度讲解

小伙伴们&#xff0c;大家好呀&#xff0c;上次听我讲完顺序表想必收获不少吧&#xff0c;嘿嘿&#xff0c;这篇文章你也一样可以学到很多&#xff0c;系好安全带&#xff0c;咱们要发车了。 因为有了上一次顺序表的基础&#xff0c;所以这次我们直接进入正题&#xff0c;温馨…

JavaScript 动态网页实例 —— 文字移动

前言 介绍文字使用的特殊效果。本章介绍文字的移动效果,主要包括:文字的垂直滚动、文字的渐隐渐显、文字的闪烁显示、文字的随意拖动、文字的坠落显示、页面内飘动的文字、漫天飞舞的文字、文字的下落效果。对于这些效果,读者只需稍加修改,就可以应用在自己的页面设计中。 …

4.3 JavaScript变量

4.3.1 变量的声明 JavaScript是一种弱类型的脚本语言&#xff0c;无论是数字、文本还是其他内容&#xff0c;统一使用关键词var加上变量名称进行声明&#xff0c;其中关键词var来源于英文单词variable&#xff08;变量&#xff09;的前三个字母。 可以在声明变量的同时对其指定…

多线程与信号量简介

信号量与 PV 操作 计算机中信号量的本质是整数&#xff0c;数值表示可用的资源数量 P 操作 (Passeren > 通过, 原子操作) 若信号量 0&#xff0c;当前任务阻塞 (进入信号量等待队列)若信号量 > 0&#xff0c;则&#xff1a;将信号量数值减一&#xff0c;当前任务继续执…

你知道什么是防抖和节流吗?

目录 1 先举个例子 2 使用场景 3 代码实现 3.1 防抖的实现 3.2 节流的实现 1 先举个例子 防抖&#xff0c;更像是坐电梯&#xff0c;早上眼看9点了&#xff0c;都着急坐电梯上去打卡&#xff0c;但眼看电梯要关了&#xff0c;进来一个人&#xff0c;等几秒&#xff0c;…

uniapp乡村社区户籍问外来人员管理系统 微信小程序python+java+node.js+php

基于微信小程序的外来人员管理系统项目的概述设计分析&#xff0c;主要内容有的私教预约平台系统平台的具体分析&#xff0c;进行数据库的是设计&#xff0c;数据采用MySQL数据库&#xff0c;并且对于系统的设计采用比较人性化的操作设计&#xff0c;对于系统出现的错误信息可以…

信创 | 信创产业人才需求与培养机制:优化策略与实践探索

信创产业的人才需求与培养机制面临着多方面的挑战和机遇。首先&#xff0c;信创产业的快速发展带来了巨大的人才需求&#xff0c;但目前人才培养供给与企业发展需求之间存在不匹配的问题。这种不匹配主要表现在课程体系不健全、产教融合不够深入、校企联动性不足以及职业培训市…

探索动态内存开辟的奥秘

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 前言 开始之前&#xff0c;我们先来了解一下C/C中程序内存区域划分。 在C/C程序中&#xff0c;内存区域通常被划分为以下几个部分&#xff1a; 1.栈&…

第16章 基于结构的测试技术(白盒测试技术)

一、静态测试技术 &#xff08;一&#xff09;概述 不运行程序代码的情况下&#xff0c;通过质量准则或其他准则对测试项目进行检查的测试类型&#xff0c;人工或工具检查。 1、代码检查 2、编码规则检查 3、静态分析 静态分析概述 不需要执行程序 控制流分析 通过生成…

短视频矩阵系统源码==3年源头开发

一 短视频矩阵系统具备以下特点: 1.内容管理功能:用户可以在系统中多账号托管 一次性上传、编辑和发布多个短视频平台的内容&#xff0c;无需在每个平台上重复操作&#xff0c;从而提高工作效率并保持内容的一致性和高质量 2.批量剪辑视频:系统支持上传批量素材管理剪辑 视频…

Visual studio调试技巧

Visual studio调试技巧 bug是什么&#xff1f;Debug和ReleaseDebugRelease 如何调试VS调试快捷键调试过程中查看程序信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息 编译常见错误编译型错误链接型错误运行时错误 bug是什么&#xff1f; bug的英文释…

SAM:Segment Anything Model

论文&#xff08;ICCV&#xff0c;fackbook&#xff09;&#xff1a;Segment Anything 源码&#xff1a; https://github.com/facebookresearch/segment-anything demo&#xff1a;Segment Anything | Meta AI (segment-anything.com) 一、摘要 本文介绍了“Segment Anything…

活动回顾 | 春起潮涌——硬件驱动的量化交易与AI

4月20日&#xff0c;华锐技术ACLUB联合AMD在上海举办了“春起潮涌——硬件驱动的量化交易与AI”沙龙活动&#xff0c;会议围绕FPGA硬件加速、CPU&网卡调优、AI技术应用等展开&#xff0c;近50位量化IT与分享嘉宾一起探讨硬件技术在量化交易和AI领域的应用和创新。 FPGA在交…

【C++第七课-string用法】

这里写自定义目录标题 string的初步介绍sring的构造函数string的构造函数-重点掌握无参的构造函数用常量字符串来初始化拷贝构造 string的构造函数-非重点掌握拷贝字符串str从pos位置开始的len个字符拷贝字符串s的前n个字符用n个c去初始化 string的赋值string的遍历和访问下标[…

爬虫自动化之drissionpage实现随时切换代理ip

目录 一、视频二、dp首次启动设置代理三、dp利用插件随时切换代理一、视频 视频直接点击学习SwitchyOmega插件使用其它二、dp首次启动设置代理 from DrissionPage import ChromiumPage, ChromiumOptions from loguru

matplotlib/seaborn 绘图可视化全面总结

1.概述 使用Matplotlib 绘图实现可视化时&#xff0c;会面临不同的需求有所调整&#xff0c;本文档重点对绘图过程中产生的一些小众需求进行全面总结&#xff0c;其他任务时可以随时即抽即用。 2.绘图 2.1 一般绘图 plt.figure() 参数设置说明 matplotlib.pyplot.figure( …

C++设计模式-创建型设计模式

设计模式 设计模式是什么 设计模式是指在软件开发中&#xff0c;经过验证的&#xff0c;用于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决方案&#xff1b;其实就是解决问题的固定套路。但是要慎用设计模式&#xff0c;有一定的工程代码量之后用它比较…

【论文阅读】Tutorial on Diffusion Models for Imaging and Vision

1.The Basics: Variational Auto-Encoder 1.1 VAE Setting 自动编码器有一个输入变量x和一个潜在变量z Example. 获得图像的潜在表现并不是一件陌生的事情。回到jpeg压缩&#xff0c;使用离散余弦变换&#xff08;dct&#xff09;基φn对图像的底层图像/块进行编码。如果你给…

先电2.4的openstack搭建

先电2.4版本的openstack&#xff0c;前期虚拟机部署参考上一篇2.2版本&#xff0c;基本步骤是一样的&#xff0c;准备两个镜像文件CentOS-7.5-x86_64-DVD-1804.iso&#xff0c;XianDian-IaaS-V2.4.iso [rootcontroller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777…