Python wx.lib.agw.ultimatelistctrl。禁止增加元件的高度
存在一个对象UltimateListCtrlPython wx.lib.agw.ultimatelistctrl。禁止增加元件的高度,python,python-3.x,python-3.4,wxpython,Python,Python 3.x,Python 3.4,Wxpython,存在一个对象UltimateListCtrl from wx.lib.agw import ultimatelistctrl as ULC self._ulc_graphs = ULC.UltimateListCtrl(self, size = (-1, 150), agwStyle=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES|ULC.ULC_HAS_VARIABLE_ROW_HEIGHT|ULC.ULC_SINGLE_SEL) 此列表包含六列。最后
from wx.lib.agw import ultimatelistctrl as ULC
self._ulc_graphs = ULC.UltimateListCtrl(self, size = (-1, 150),
agwStyle=wx.LC_REPORT|wx.LC_VRULES|wx.LC_HRULES|ULC.ULC_HAS_VARIABLE_ROW_HEIGHT|ULC.ULC_SINGLE_SEL)
此列表包含六列。最后一栏“评论”。由于此对象不允许直接编辑第n列中的元素值(只能编辑第0列)。决定在最后一列的每一行中插入一个按钮,单击该按钮将弹出一个带有wx.TextCtrl的对话框。用户在此处输入注释,单击“确定”,注释文本将输入列表第n项的最后一列。第5列(如果为0):
结果:
当然,强制用户将文本写入一行是个坏主意。因此,我为wx.TextCtrl对象包含了wx.TE_多行样式。但是,当我将多行文本插入列表单元格时,该单元格会增大其大小:元素高度=文本中的行数
当然,这看起来很糟糕:
我能以某种方式禁止它(高度增加)吗?我可能误解了您的问题,但为什么不干脆替换对话框结果中的所有换行符。
大致如下:
def OnButtonComment(self,event):
dlg = wx.TextEntryDialog(self, "Comment", caption="Input Data",
value="", style=wx.OK|wx.CANCEL|wx.TE_MULTILINE)
dlg.ShowModal()
txt = dlg.GetValue()
txt = txt.replace('\n',' ')
self.list.SetStringItem(self.index, 1, txt)
谢谢你的回答。我就是这么做的。仅替换为“0x00”。
def OnButtonComment(self,event):
dlg = wx.TextEntryDialog(self, "Comment", caption="Input Data",
value="", style=wx.OK|wx.CANCEL|wx.TE_MULTILINE)
dlg.ShowModal()
txt = dlg.GetValue()
txt = txt.replace('\n',' ')
self.list.SetStringItem(self.index, 1, txt)