wxPython 的 ListCtrl 控件的列表模式和小图标模式下各项目行距调整
来源:互联网 发布:地震科学数据共享中心 编辑:程序博客网 时间:2024/04/28 05:29
wxPython的ListCtrl控件在列表模式和小图标模式下,各行是紧挨着的,非常难看,翻了半天手册,也没发现有什么方法可以调整。
倒是有个SetColumnWidth方法可以调整各列的宽度(在列表模式或小图标模式下,col参数设为-1就行了,可以用来调整小图标模式和列表模式的宽度),但是没有什么方法可以调整行距,要是有SetRowHeight方法就好了。
想来想去,突然想出了一个"绝招"解决问题了。把wx.ImageList中的图片弄大一些,图片空白的地方显示为透明或与背景色一致就行了。因为ListCtrl的列表和小图标模式中字体的高度为约为15像素(默认情况下),如果图片的高度为20,则各行之间自动就会留下空白。
试试果然能行,不过小图标模式中ImageStringItem与图标的顶部对齐,列表模式中与图标的底部对齐,没办法文字与图片垂直居中对齐。
办法有点傻,不过傻办法比没办法好。
如:
生成的图片如下:
比原来的样子看起来舒服多了!!
倒是有个SetColumnWidth方法可以调整各列的宽度(在列表模式或小图标模式下,col参数设为-1就行了,可以用来调整小图标模式和列表模式的宽度),但是没有什么方法可以调整行距,要是有SetRowHeight方法就好了。
想来想去,突然想出了一个"绝招"解决问题了。把wx.ImageList中的图片弄大一些,图片空白的地方显示为透明或与背景色一致就行了。因为ListCtrl的列表和小图标模式中字体的高度为约为15像素(默认情况下),如果图片的高度为20,则各行之间自动就会留下空白。
试试果然能行,不过小图标模式中ImageStringItem与图标的顶部对齐,列表模式中与图标的底部对齐,没办法文字与图片垂直居中对齐。
办法有点傻,不过傻办法比没办法好。
如:
#!/usr/bin/python
#-*- coding: utf8 -*-
import wx
d = [u'今天天气真好'] * 30
class DemoFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "wx.ListCtrl in wx.LC_SMALL_ICON mode",
size=(600,400))
self.SetFont(wx.Font(12, wx.FONTFAMILY_SWISS, wx.NORMAL, wx.NORMAL, False,u'宋体'))
il = wx.ImageList(25,25, True)
for name in range(len(d)):
bmp = wx.Bitmap('text1.png', wx.BITMAP_TYPE_PNG)
il_max = il.Add(bmp)
self.lc = wx.ListCtrl(self, -1, style=wx.LC_SMALL_ICON | wx.LC_AUTOARRANGE)
self.lc.AssignImageList(il, wx.IMAGE_LIST_SMALL)
for x in range(len(d)):
self.lc.InsertImageStringItem(x, d[x], x)
app = wx.PySimpleApp()
frame = DemoFrame()
frame.Show()
app.MainLoop()
#-*- coding: utf8 -*-
import wx
d = [u'今天天气真好'] * 30
class DemoFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "wx.ListCtrl in wx.LC_SMALL_ICON mode",
size=(600,400))
self.SetFont(wx.Font(12, wx.FONTFAMILY_SWISS, wx.NORMAL, wx.NORMAL, False,u'宋体'))
il = wx.ImageList(25,25, True)
for name in range(len(d)):
bmp = wx.Bitmap('text1.png', wx.BITMAP_TYPE_PNG)
il_max = il.Add(bmp)
self.lc = wx.ListCtrl(self, -1, style=wx.LC_SMALL_ICON | wx.LC_AUTOARRANGE)
self.lc.AssignImageList(il, wx.IMAGE_LIST_SMALL)
for x in range(len(d)):
self.lc.InsertImageStringItem(x, d[x], x)
app = wx.PySimpleApp()
frame = DemoFrame()
frame.Show()
app.MainLoop()
生成的图片如下:
比原来的样子看起来舒服多了!!
- wxPython 的 ListCtrl 控件的列表模式和小图标模式下各项目行距调整
- 调整Label的行距
- wxPython的ListCtrl控件插入行出现应用程序无响应
- 在ListCtrl控件的子列中插入图标
- wxPython - ListCtrl列表排序
- MFC ListCtrl Report模式下添加首列图标
- MFC中ListCtrl列表控件的使用
- Latex: 调整文档的行距?
- Latex: 调整文档的行距
- 更改listctrl的图标
- CListCtrl控件列表项和列表头图标的显示
- Linux下调整网卡的工作模式
- Fedora18 文本模式下分辨率的调整
- Linux下调整网卡的工作模式
- mfc 在ListCtrl控件的非第一列添加图标
- ListCtrl列表控件中NM_CLICK消息的发送和处理一例
- 设置ListCtrl列表控件其中某一行的字体和背景颜色
- 设置ListCtrl列表控件其中某一行的字体和背景颜色
- 录井管理系统
- 综合录井采集系统
- 腾讯笔试题
- Log4net 使用文档(概念)
- 上拉电阻下拉电阻的总结
- wxPython 的 ListCtrl 控件的列表模式和小图标模式下各项目行距调整
- SpringSide近况
- 指针(一)(基本概念)
- C#比较两时间大小
- 又发现FF的两处不同eval和scope释放问题...
- asp.net的跨页面提交
- 特价供应台达人机界面
- Oracle中纵表转横表(行列转换)示例
- 本人写的一个不错的js封装类(有什么不好的地方请提出)