- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
问题:我有一个 wx.ListCtrl,我想在其中包含一个颜色选择器。因此,给定一个列表,如下图所示:
我想要得到的是这样的:
其中黑色方 block 元素是wx.ColorPickerCtrl。我查看了 ListCtrl 方法,但找不到任何东西。我也查看了 UltimateListCtrl 但也没有找到任何方法。
到目前为止,这是我的代码:
import wx
import wx.xrc
class MyFrame1 ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
bSizer2 = wx.BoxSizer( wx.VERTICAL )
self.m_panel2 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
bSizer3 = wx.BoxSizer( wx.VERTICAL )
self.m_listCtrl9 = wx.ListCtrl( self.m_panel2, style=wx.LC_REPORT| wx.LC_HRULES | wx.LC_SINGLE_SEL | wx.BORDER_SUNKEN)
self.m_listCtrl9.InsertColumn(0, 'Something')
self.m_listCtrl9.InsertColumn(1, 'Description')
self.m_listCtrl9.InsertColumn(2, 'Color ', width=125)
for i in range(0,20):
self.m_listCtrl9.InsertStringItem(0, "212343" + str(i))
bSizer3.Add( self.m_listCtrl9, 0, wx.ALL|wx.EXPAND, 5 )
self.m_staticline4 = wx.StaticLine( self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
bSizer3.Add( self.m_staticline4, 0, wx.EXPAND |wx.ALL, 5 )
self.m_panel2.SetSizer( bSizer3 )
self.m_panel2.Layout()
bSizer3.Fit( self.m_panel2 )
bSizer2.Add( self.m_panel2, 1, wx.EXPAND |wx.ALL, 5 )
self.SetSizer( bSizer2 )
self.Layout()
self.Centre( wx.BOTH )
def main():
app = wx.App(False)
f = MyFrame1(None)
f.Show()
app.MainLoop()
if __name__ == '__main__':
main()
我在想也许有一个明显的方法可以做到这一点,因为它看起来很简单,但我不知道该怎么做,有什么建议吗?
提前致谢。
最佳答案
您肯定需要 UltimateListCtrl
来实现所需的行为。它有一个SetItemWindow
方法,可以向ListCtrl 插入一个控件。要使其正常工作,请确保 UltimateListCtrl
的样式包括 wx.LC_REPORT
和 ulc.ULC_HAS_VARIABLE_ROW_HEIGHT
。这应该可以解决问题:
import wx.lib.agw.ultimatelistctrl as ulc
class MyFrame1 ( wx.Frame ):
def __init__( self, parent ):
...
self.m_listCtrl9 = ulc.UltimateListCtrl( self.m_panel2, agwStyle=wx.LC_REPORT|ulc.ULC_HAS_VARIABLE_ROW_HEIGHT)
...
self.color_pickers = []
for i in range(20):
idx = self.m_listCtrl9.InsertStringItem(0, "212343" + str(i))
color_picker = wx.ColourPickerCtrl(self.m_listCtrl9, -1)
self.m_listCtrl9.SetItemWindow(idx, 2, color_picker)
self.color_pickers.append(color_picker)
关于python - ListCtrl 中的 ColourPickerCtrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415773/
我正在尝试在 ListCtrl 中设置项目的文本内容。问题是它不起作用。 我使用这个函数:_listItem.SetText( "Blah") 但文本没有改变?我也尝试过 SetItemText()
我在列表控件中放置了一些行,然后相当快地更新它们——通常数据来自总线——整个列表闪烁得非常多。阻止它这样做真的很好。 我已经尽可能地减少了代码,同时仍然保持下面示例中我正在做的事情的一般外观。 lis
我正在尝试创建一个自定义 wxPython 小部件。这将允许用户从左侧列表中选择多个项目并将它们移动到右侧列表。我只是坚持从列表中选择多个项目。这是我想要实现的屏幕截图: 这是我的代码(它刚刚开始,因
我不明白为什么第一列中的图像没有显示......这是我的代码 ... self.imgEntrata = wx.Image("entrata.png", wx.BITMAP_TYPE_PNG) sel
我正在寻找一种在用户将鼠标悬停时显示工具提示的方法 将鼠标放在 wx.ListCtrl 的列标题上,这可能吗? 我试过绑定(bind)wx.EVT_MOTION但看起来它只适用于 列出项目,而不是标题
是否可以以列表的形式获取wx.ListCtrl列中的所有值(项目)? 我在文档中看到您可以获取指定的项目,但不能获取整个列,GetValue() 也不起作用,有什么帮助吗? 最佳答案 这是一种方法:
我的应用程序中有一个自定义 listctrl,我希望能够选择多行(并取消选择),就像在列表框中所做的那样。目前我有一个 listctrl,我可以获取单个选择;但是,一旦我单击 listctrl 中的另
我正在尝试使用 wxPython 创建一个应用程序。 我有一个 sizer ,在该 sizer 内我添加了一个带有一些列表项的 ListCtrl 。当我缩小 sizer(窗口)时,列表中的项目会显示为
好吧,在我的 Listctrl 中设置一些数字时遇到了一些麻烦 它们是 SQL 数据库中的数字,它们作为字符串插入...自动转换为数字 from wx import * import Item as
我试图在一个操作之后的初始点滚动一个列表,该操作的结果是删除所有项目并重新填充。 我想记录滚动位置,然后设置回它,但 GetScrollPos 出于某种原因总是返回 0。 我一直在查看所有 ListC
我正在努力使面板中的“表格”看起来不错。我遇到的这个问题是表格填满了面板,但一切都在左边。我想让每一列的大小相同并跨越面板的整个宽度。我看过 ListCtrlAutoWidthMixin,但不确定如何
我正在寻找一种方法来确定右键单击列表 ctrl 的标题以显示上下文菜单。我有一个代码示例,但它不起作用。 void ExDialog::OnContextMenu(CWnd* pWnd, CPoint
问题:我有一个 wx.ListCtrl,我想在其中包含一个颜色选择器。因此,给定一个列表,如下图所示: 我想要得到的是这样的: 其中黑色方 block 元素是wx.ColorPickerCtrl。我查
我正在重写这篇文章以澄清一些事情并为我遇到问题的虚拟列表提供完整的类定义。该类定义如下: from wx import ListCtrl, LC_REPORT, LC_VIRTUAL, LC_HRUL
我正在使用 wxPython 处理一个表单,我希望 listctrl 的值列表根据另一个 listctrl 的选择而改变。为此,我使用链接到控制对象的 EVT_LIST_ITEM_SELECTED 和
我的问题是我们是否可以为某个项目分配/绑定(bind)一些值并隐藏该值(或者我们是否可以用另一种方式做同样的事情)。 示例:假设 ListCtrl 上的列是“名称”和“描述”: self.lc = w
我使用 ListCtrl 作为日志文件查看器,这样我就可以对普通用户隐藏“调试”类型的列。我希望能够像在许多其他网格类型程序中那样选择多个单元格,然后右键单击并说“复制”,然后能够将其粘贴到文本文档、
我正在使用 ListCtrl,它会动态填充项目,当项目被“激活”(双击/输入)时,它会调用一个函数。 def onClick(self, event): 由于没有预设 ID,我如何找出列表中的
我来自thisLVCFMT_FIXED_WIDTH这种格式样式有效,但仅在第一列之后。第一列项目始终是可移动的。为什么?我是否遗漏了什么? for(int i = 0; i
我来自thisLVCFMT_FIXED_WIDTH这种格式样式有效,但仅在第一列之后。第一列项目始终是可移动的。为什么?我是否遗漏了什么? for(int i = 0; i
我是一名优秀的程序员,十分优秀!