ThumbnailCtrl
is a widget that can be used to display a series of images in
a “thumbnail” format.
ThumbnailCtrl
is a widget that can be used to display a series of images in
a “thumbnail” format; it mimics, for example, the windows explorer behavior
when you select the “view thumbnails” option.
Basically, by specifying a folder that contains some image files, the files
in the folder are displayed as miniature versions of the actual images in
a ScrolledWindow
.
The code is partly based on wxVillaLib, a wxWidgets implementation of this
control. However, ThumbnailCtrl
wouldn’t have been so fast and complete
without the suggestions and hints from Peter Damoc. So, if he accepts the
mention, this control is his as much as mine.
ThumbnailCtrl
is more of a demo application than a widget.
The ScrolledThumbnail
is a freestanding widget, accepting a list of
Thumb
objects which represent files and which returns a thumbnail
on request. Thumb
can be extended by the user to provide thumbnails
for other data types, such as text, audio, video, or PDF files.
Usage example:
import os
import wx
import wx.lib.agw.thumbnailctrl as TC
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "ThumbnailCtrl Demo")
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
thumbnail = TC.ThumbnailCtrl(panel, imagehandler=TC.NativeImageHandler)
sizer.Add(thumbnail, 1, wx.EXPAND | wx.ALL, 10)
thumbnail.ShowDir(os.getcwd())
panel.SetSizer(sizer)
# our normal wxApp-derived class, as usual
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
With ThumbnailCtrl
you can:
Create different thumbnail outlines (none, images only, full, etc…);
Highlight thumbnails on mouse hovering;
Show/hide file names below thumbnails;
Change thumbnail caption font;
Zoom in/out thumbnails (done via Ctrl
key + mouse wheel or with +
and -
chars,
with zoom factor value customizable);
Rotate thumbnails with these specifications:
d
key rotates 90 degrees clockwise;
s
key rotates 90 degrees counter-clockwise;
a
key rotates 180 degrees.
Delete files/thumbnails (via the del
key);
Drag and drop thumbnails from ThumbnailCtrl
to whatever application you want;
Use local (when at least one thumbnail is selected) or global (no need for thumbnail selection) popup menus;
Show/hide a ComboBox
at the top of ThumbnailCtrl
: this combobox contains
working directory information and it has history entries;
possibility to show tooltips on thumbnails, which display file information (like file name, size, last modification date and thumbnail size).
Note
Using highlight thumbnails on mouse hovering may be slow on slower computers.
No particular window styles are available for this class.
This class processes the following events:
Event Name |
Description |
---|---|
|
The user has double-clicked on a thumbnail. |
|
The mouse cursor is hovering over a thumbnail. |
|
The user has changed the selected thumbnail. |
|
The thumbnail of an image has changed. Used internally. |
|
A key was typed in the widget |
ThumbnailCtrl
is distributed under the wxPython license.
Latest revision: Michael Eager @ 26 Sep 2020
Version 1.0
Convert paths to the platform-specific separator. |
|
|
|
opj
(path)¶Convert paths to the platform-specific separator.
path – the path to convert.