回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我曾试图向wxpython提出申请。我需要为我的GUI(facebook加载)制作listview。所以我选择ObjectListview。不幸的是,这是非常艰苦的工作和缺乏信息的初学者。我测试了“SimpleExamples”。效果很好。但我需要改变形象。尽管我自己努力想弄清楚,但还是做不到。通过一些努力,我发现图像文件是python代码。但我不知道如何将图像转换为python代码</p>
<p>你能帮我吗???你的回答可能是我最好的答案。在</p>
<p>源代码来自<a href="https://github.com/adrianer/ObjectListView" rel="nofollow">https://github.com/adrianer/ObjectListView</a></p>
<p>下面是来自ObjectListview的SimpleExample2.py</p>
<pre><code># -*- coding: utf-8 -*-
#!/usr/bin/env python
import datetime
import wx
# Where can we find the ObjectListView module?
import sys
sys.path.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>("..")
from ObjectListView import ObjectListView, ColumnDefn
import ExampleModel
import ExampleImages ******# We store our images as python code**Look at here please~****
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
wx.Frame.__init__(self, *args, **kwds)
self.Init()
def Init(self):
self.InitModel()
self.InitWidgets()
self.InitObjectListView()
def InitModel(self):
self.songs = ExampleModel.GetTracks()
def InitWidgets(self):
panel = wx.Panel(self, -1)
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_1.Add(panel, 1, wx.ALL|wx.EXPAND)
self.SetSizer(sizer_1)
self.myOlv = ObjectListView(panel, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_2.Add(self.myOlv, 1, wx.ALL|wx.EXPAND, 4)
panel.SetSizer(sizer_2)
self.Layout()
def InitObjectListView(self):
groupImage = self.myOlv.AddImages(ExampleImages.getGroup16Bitmap(), ExampleImages.getGroup32Bitmap())
userImage = self.myOlv.AddImages(ExampleImages.getUser16Bitmap(), ExampleImages.getUser32Bitmap())
musicImage = self.myOlv.AddImages(ExampleImages.getMusic16Bitmap(), ExampleImages.getMusic32Bitmap())
soloArtists = ["Nelly Furtado", "Missy Higgins", "Moby", "Natalie Imbruglia",
"Dido", "Paul Simon", "Bruce Cockburn"]
def artistImageGetter(track):
if track.artist in soloArtists:
return userImage
else:
return groupImage
def sizeToNiceString(byteCount):
"""
Convert the given byteCount into a string like: 9.9bytes/KB/MB/GB
"""
for (cutoff, label) in [(1024*1024*1024, "GB"), (1024*1024, "MB"), (1024, "KB")]:
if byteCount >= cutoff:
return "%.1f %s" % (byteCount * 1.0 / cutoff, label)
if byteCount == 1:
return "1 byte"
else:
return "%d bytes" % byteCount
self.myOlv.SetColumns([
ColumnDefn("Title", "left", 120, "title", imageGetter=musicImage),
ColumnDefn("Artist", "left", 120, "artist", imageGetter=artistImageGetter),
ColumnDefn("Size", "center", 100, "sizeInBytes", stringConverter=sizeToNiceString),
ColumnDefn("Last Played", "left", 100, "lastPlayed", stringConverter="%d-%m-%Y"),
ColumnDefn("Rating", "center", 100, "rating")
])
self.myOlv.SetObjects(self.songs)
if __name__ == '__main__':
app = wx.PySimpleApp(1)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, "ObjectListView Simple Example 2")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()
</code></pre>
<p>还有示例图像.py代码
我从未见过这些代码(x00\x10\x08)。我想如果我想在Objectlistview中使用图像,我需要像这样修改代码(x00\x10\x08)。在</p>
^{pr2}$
<p>我理解错了吗???
有没有其他方法可以改变图像。
(我需要更改图像大小、位置、字体和文本大小等。。。。但首先我想改变图像)</p>