首页 > 其他分享 >wx.grid表格样式重绘(超链接样式)

wx.grid表格样式重绘(超链接样式)

时间:2023-08-16 09:44:31浏览次数:36  
标签:样式 text self dc grid 超链接 grid12 wx

首先声明,这里达不到超链接的效果,仅仅是显示出来像超链接的样式而已!!!

如果需要实现超链接,就尝试绑定一下单元格点击事件。

 

重绘表格类构建

class BlueUnderlineRenderer(wx.grid.PyGridCellRenderer):
    def __init__(self):
        gridlib.GridCellRenderer.__init__(self)
        
    def Draw(self, grid, attr, dc, rect, row, col, isSelected):
        # Clear the rectangle with the background color
        #清除带有背景色的矩形
        dc.SetBrush(wx.Brush("#e4f9f5", wx.BRUSHSTYLE_SOLID))
        dc.SetPen(wx.TRANSPARENT_PEN)
        dc.DrawRectangle(rect)

        text = grid.GetCellValue(row, col)

        # Calculate the text size
        #计算文本大小
        dc.SetFont(wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, underline=True))
        text_width, text_height = dc.GetTextExtent(text)

        # Calculate the centered position
        #计算中心位置
        x_centered = rect.x + (rect.width - text_width) // 2
        y_centered = rect.y + (rect.height - text_height) // 2

        # Draw the text in blue and centered
        #以蓝色绘制文本并居中
        dc.SetTextForeground(wx.BLUE)
        dc.DrawText(text, x_centered, y_centered)

    def GetBestSize(self, grid, attr, dc, row, col):
        return wx.Size(100, 30)

  

使用方法:

#构建表格
self.grid12 = wx.grid.Grid(self.baseinfopanel)
self.grid12.CreateGrid(60, 7)  # 创建一个 初始60行 7 列的表格
#设置列表头
self.grid12.SetColLabelValue(0, "产品编号")
#设置列宽
self.grid12.SetColSize(0,180)       
……




#设置单元格内容
self.grid12.SetCellValue(RowCount, ColCount, str("……")]))

#设置调用BlueUnderlineRenderer()类的实例,作为参数渲染单元格样式
renderer = BlueUnderlineRenderer()
self.grid12.SetCellRenderer(RowCount,ColCount, renderer)  # 设置特定单元格的渲染器

  

 

标签:样式,text,self,dc,grid,超链接,grid12,wx
From: https://www.cnblogs.com/babashi9527/p/17633097.html

相关文章

  • 基于Hexo和Butterfly创建个人技术博客,(15) 开发个人hexo主题-stylus动态样式语法
    stylus可以简单理解为一个动态的css样式表,在原有W3C规定的基础上增加了编程的能力,在使用前通过插件会再编译成普通的css文件。本章目标:掌握stylus样式语法,本章开始我们会从头开始编写自己的博客主题,同样采用pug和styl语法,官方帮助文档:stylus一、概述Stylus语法是python式基于缩进......
  • ThingsKit物联网平台可视化工具之组态样式配置
    概述组态样式配置是指通过设置设计器中各个组件的样式属性,来改变它们的表现形式和外观。每个组件都有一些样式属性,如颜色、大小、字体、背景、边框等。通过改变这些属性,可以改变组件的外观和行为。功能说明在本系统中,样式配置分为三类:样式、文本、调整图形。样式样式的内容设......
  • Nginx返回的css样式不加载
    不小心修改了nginx.conf,之前的配置全部丢失。好在配置项挺少,就只开启了gzip和转发请求时在请求头中添加原始ip。奇怪的是,部分项目打开后样式丢失。查看控制台,css文件能够正常下载。注意到css的content-type,为text/plain:这样问题原因就很明确了,应该是gzip的配置问题。只要在se......
  • Web自动化_分布式测试Grid入门
    要在多台计算机上并⾏运⾏测试吗?那么,Grid正是为你准备的。分布式测试Grid环境:1.需要JDK支持,最新的版本需要11版本,老版本的1.8seleniumserverjar包下载地址:https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.5.0单机模式:启动命令:java-jar包名<一定要用ta......
  • vue——qq音乐播放器(1) 左边导航栏样式的实现
    实现结果:左侧导航栏样式实现完整代码:1<template>2<!--左边导航条-->3<divclass="leftnav">4<!--logo-->5<divclass="logo"></div>6<divclass="my-scroll">7......
  • vite中导入全局样式变量(less、sass)
    1、先新建vars.less文件,定义基础样式变量2、在vite.config.ts下添加配置import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'importpathfrom"path";//https://vitejs.dev/config/exportdefaultdefineConfig({plugins:[vue(......
  • 修改并导出谷歌地图API中地图的样式
      本文介绍在谷歌地图API(GoogleMapsAPIs)中,设计地图样式并将设计好的样式通过JSON或URL导出的方法。  首先,进入GoogleMapsAPIs网站。在弹出的窗口中我们可以看到,目前还可以基于谷歌云端硬盘进行地图样式设计;但原有的GoogleMapsAPIs其实相对来说也还是很方便、简洁的,本文......
  • CSS基础-文字样式
    文字样式文字是网页展示的重要内容之一,所以对文字的修饰也是CSS重点关注的一部分,CSS提供了以下常用的样式属性来修饰文字。color属性color用来设置文字颜色。设置方式支持以下几种格式英语颜色单词形式,如:red(红)、black(黑)、orange(橙色)等。<style> .box{ color:red......
  • 【技术实战】Vue功能样式实战【七】
    需求实战一样式展示代码展示<template><transitionname="fade-in"appear><ARowv-if="show"><ACol><divclass="info-card"><divclass="in......
  • 【技术实战】Vue功能样式实战【六】
    需求实战一样式展示代码展示<template><ARow><AColstyle="background-color:#F1F4F5"><divclass="info-card"><divclass="info-title">数据总和......