作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 wxPython 创建一个应用程序。
我有一个 sizer
,在该 sizer
内我添加了一个带有一些列表项的 ListCtrl
。当我缩小 sizer
(窗口)时,列表中的项目会显示为点 ...
。
我想在调整窗口大小时将单词换行,并且每个项目的内容应放置在多行中。我尝试过 ListCtrl
、UltimateListCtrl
和 ListCtrlAutoWidthMixin
。但没有给出所需的输出。
是否有任何方法可以使用 ListCtrl
或 UltimateListCtrl
或任何其他小部件来实现此目的?
最佳答案
您可以使用 UltimateListCtrl 来实现。
以下代码引用this ,并进行了一些改进以支持列拖动的自动更新。
import wx
from wx.lib.wordwrap import wordwrap
import wx.lib.agw.ultimatelistctrl as ULC
class Frame(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
self.list = ULC.UltimateListCtrl(self, agwStyle=ULC.ULC_REPORT|ULC.ULC_HAS_VARIABLE_ROW_HEIGHT)
self.items = ['list', 'list', 'I want to wrap words and content shold be placed in multiple lines for each item as the window is resized']
colWidth = 200
self.colWidthPad = 5
self.list.InsertColumn(0, "test", width=colWidth)
for item in self.items[::-1]:
item = wordwrap(item, colWidth - self.colWidthPad, wx.ClientDC(self))
self.list.InsertStringItem(0, item)
self.list.Bind(wx.EVT_LIST_COL_DRAGGING, self.onDrag)
def onDrag(self, evt):
col = evt.GetItem().GetColumn()
width = self.list.GetColumnWidth(col)
itemCount = self.list.GetItemCount()
for i in range(0, itemCount):
text = wordwrap(self.items[i], width - self.colWidthPad, wx.ClientDC(self))
self.list.SetStringItem(i, col, text)
app = wx.App(False)
frm = Frame(None, title="ULC wordwrap test")
frm.Show()
app.MainLoop()
关于python - wxPython ListCtrl 在调整大小时换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21900165/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!