- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Python 2.7 中使用 ObjectListView 时 - 按键盘上的任何字母数字键,我在 IDE 中收到以下消息错误(使用 PyCharm):
C:\Users\dylan_cissou\AppData\Local\Continuum\Anaconda\python.exe C:/Users/dylan_cissou/PycharmProjects/SPA/example.py
Traceback (most recent call last):
File "build\bdist.win-amd64\egg\ObjectListView\ObjectListView.py", line 1410, in _HandleChar
File "build\bdist.win-amd64\egg\ObjectListView\ObjectListView.py", line 1457, in _HandleTypingEvent
TypeError: 'in <string>' requires string as left operand, not int
我应该怎样做才能禁用此消息?我试图找到这两个事件的位置,以便我可以覆盖它们,但我找不到任何事件。
代码示例为:
import wx
from ObjectListView import ObjectListView, ColumnDefn
########################################################################
class Book(object):
"""
Model of the Book object
Contains the following attributes:
'ISBN', 'Author', 'Manufacturer', 'Title'
"""
#----------------------------------------------------------------------
def __init__(self, title, author, isbn, mfg):
self.isbn = isbn
self.author = author
self.mfg = mfg
self.title = title
########################################################################
class MainPanel(wx.Panel):
#----------------------------------------------------------------------
def __init__(self, parent):
wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
self.products = [Book("wxPython in Action", "Robin Dunn",
"1932394621", "Manning"),
Book("Hello World", "Warren and Carter Sande",
"1933988495", "Manning")
]
self.dataOlv = ObjectListView(self, wx.ID_ANY, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
self.setBooks()
# Allow the cell values to be edited when double-clicked
self.dataOlv.cellEditMode = ObjectListView.CELLEDIT_SINGLECLICK
# create an update button
updateBtn = wx.Button(self, wx.ID_ANY, "Update OLV")
updateBtn.Bind(wx.EVT_BUTTON, self.updateControl)
# Create some sizers
mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(self.dataOlv, 1, wx.ALL|wx.EXPAND, 5)
mainSizer.Add(updateBtn, 0, wx.ALL|wx.CENTER, 5)
self.SetSizer(mainSizer)
#----------------------------------------------------------------------
def updateControl(self, event):
"""
"""
print "updating..."
product_dict = [{"title":"Core Python Programming", "author":"Wesley Chun",
"isbn":"0132269937", "mfg":"Prentice Hall"},
{"title":"Python Programming for the Absolute Beginner",
"author":"Michael Dawson", "isbn":"1598631128",
"mfg":"Course Technology"},
{"title":"Learning Python", "author":"Mark Lutz",
"isbn":"0596513984", "mfg":"O'Reilly"}
]
data = self.products + product_dict
self.dataOlv.SetObjects(data)
#----------------------------------------------------------------------
def setBooks(self, data=None):
self.dataOlv.SetColumns([
ColumnDefn("Title", "left", 220, "title"),
ColumnDefn("Author", "left", 200, "author"),
ColumnDefn("ISBN", "right", 100, "isbn"),
ColumnDefn("Mfg", "left", 180, "mfg")
])
self.dataOlv.SetObjects(self.products)
########################################################################
class MainFrame(wx.Frame):
#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, parent=None, id=wx.ID_ANY,
title="ObjectListView Demo", size=(800,600))
panel = MainPanel(self)
########################################################################
class GenApp(wx.App):
#----------------------------------------------------------------------
def __init__(self, redirect=False, filename=None):
wx.App.__init__(self, redirect, filename)
#----------------------------------------------------------------------
def OnInit(self):
# create frame here
frame = MainFrame()
frame.Show()
return True
#----------------------------------------------------------------------
def main():
"""
Run the demo
"""
app = GenApp()
app.MainLoop()
if __name__ == "__main__":
main()
只需按任意按键,例如“3”、“z”、“x”等...每次都会出现红色错误消息。
感谢您的帮助。
最佳答案
嗯,似乎是 wxPython 的问题,我在 2.8.12 Unicode 版本、3.0.2 和 Python 2.7 上使用 OLV 1.3.2 的 Phoenix 中看到了同样的问题
evt.GetUnicodeKey 应根据 Phoenix 文档返回一个字符串: http://wxpython.org/Phoenix/docs/html/KeyEvent.html?highlight=getkeycode#KeyEvent.GetUnicodeKey
根据 Robin Dunn 的说法,这是不正确的,它应该返回一个 int。
我在 wxPython-dev 上发布了一个关于此的问题。
我将在olv._HandleTypingEvent中进行更改,如下所示::
if evt.GetUnicodeKey() == 0:
uniChar = chr(evt.GetKeyCode())
else:
uniChar = evt.GetUnicodeKey()
if uniChar not in string.printable:
return False
至:
if evt.GetUnicodeKey() == 0:
uniChar = chr(evt.GetKeyCode())
else:
uniChar = chr(evt.GetUnicodeKey())
if uniChar not in string.printable:
return False
关于python - TypeError : 'in <string>' requires string as left operand, not int with ObjectListView wxPython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302875/
我在演示项目中尝试了演示代码,但无法成功添加新项目。它只是添加新的 NULL 组和 NULL 项。请给我一个简单的示例代码来添加新项目(文本和图像)。 谢谢! 哦,对不起!我忘了。这是我第一次参与这个
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我有一个应用程序,其中我 向 ListView 添加数千个项目 .此操作可能需要一段时间,但这对应用程序来说没问题。但是,我仍然希望在填充列表时运行一个选取框进度条,以便用户可以看到正在发生的事情。
我正在使用 ObjectListview。 我启用了 usesubitemcheckbox。但问题是,当我单击子项中的复选框时,复选框不会更改状态。 最佳答案 我最好的猜测是没有分配 bool 方面。
当我使用 objectListViewInstance.Items.Clear() 删除 Items 时,Objects 将作为 Items 在视觉上消失>,但它们仍在 objectListViewI
我有一个带有一些选项卡的 ObjectListView,其中一个是作业编号。此作业编号选项卡从数据库中获取作业编号,并在每个作业编号旁边显示一个复选框。我的要求是我想在该作业编号选项卡上添加一个复选框
我使用 ObjectListView 而不是标准 ListView 是因为我想对列进行自动换行。 我在几个地方读到,为了启用自动换行,我唯一需要做的就是将 column.wordWrap 设置为 tr
我目前正在尝试使用 TreeListView,我想知道如何找到三层嵌套对象的值,其中层是位置,然后是系统,然后是设备。 private void initObjectListView() {
我正在运行 Python 2.7,并且我有一个显示大量人口统计信息的 ObjectListView。我可以让它正确排序,但输出显示为 100000.0 格式。当我使用 locale 模块将整数转换为字
我正在尝试从 ObjectListView 组件搜索和过滤 TreeListView 对象的结果。目前,我正在将其实现到具有以下类的 C# (.NET 4.0) 项目中 MyAbstract、MyDi
我有一个 ObjectListView它本质上是标准 .NET ListView 的包装器。我的问题是我无法弄清楚向控件添加新对象、滚动控件以确保对象可见以及选择对象的方法调用的正确顺序。下面是我实现
我的程序提取 Windows 更新,检测版本号并将它们记录到 ListView 中的列(KB,版本),但我试图将其更改为 ObjectListView所以我可以对列进行排序。我终其一生都无法弄清楚如何
我有一个可编辑的 ObjectListView self.TrackOlv.cellEditMode = ObjectListView.CELLEDIT_SINGLECLICK 这给了我两个奇怪的问题
我正在尝试对 ObjectListView 实现通过拖放重新排序的功能。考虑以下类: public class MyClass { public string Name { get; set;
尝试将图标放入 ObjectListview,这是我应该放置图标的代码: objectListView1.SmallImageList = imageList1; deleteColu
我想更改组标题的名称,但我无法在文档或谷歌上找到任何解决方案。 标题中的文本应该是在组中汇总的时间。 它应该是这样的: 最佳答案 the text in the header should be a
我需要类似 ObjectListView 的东西( http://objectlistview.sourceforge.net/cs/index.html ),但它必须是免费的,并且必须是 LGPL、
我尝试将 TextMatchFilter 用于我的 ObjectListView。 我不知道为什么,但不是 Filterung(我想要的),该功能只突出显示单词。 所以我希望整个 ObjectList
我有一个更新 ObjectListView 的列表,它以前可以工作,但在解决另一个问题时,我以某种方式破坏了它,但现在无法弄清楚为什么它不工作。 当程序解析目录时,它应该使用找到的 .mp3 文件的信
谁能告诉我如何在 ObjectListView 中保持选择? 我有一个从数据库接收到的对象列表在我的控制之下。用户选择一个然后点击“刷新”(以便再次从数据库中检索所有项目)。选择是“跳跃”的,但我希望
我是一名优秀的程序员,十分优秀!