Tk库的使用(2)

简介: # Sample code from Programing Ruby, page 250require 'tk'class GifViewer  def initialize(filelist)    setup_viewer(filelist)  end  def run    Tk.
# Sample code from Programing Ruby, page 250
require 'tk'

class GifViewer

  def initialize(filelist)
    setup_viewer(filelist)
  end

  def run
    Tk.mainloop
  end

  def setup_viewer(filelist)
    @root = TkRoot.new {title 'Scroll List'}
    frame = TkFrame.new(@root)

    image_w = TkPhotoImage.new
    TkLabel.new(frame) do
      image image_w
      pack 'side'=>'right'
    end

    list_w = TkListbox.new(frame) do
      selectmode 'single'
      pack 'side' => 'left'
    end
      
    list_w.bind("ButtonRelease-1") do
      busy do
        filename = list_w.get(*list_w.curselection)
        tmp_img = TkPhotoImage.new { file filename }
        scale   = tmp_img.height / 100
        scale   = 1 if scale < 1
        image_w.copy(tmp_img, 'subsample' => [scale, scale])
        image_w.pack
      end
    end

    filelist.each do |name|
      list_w.insert('end', name) # Insert each file name into the list
    end

    scroll_bar = TkScrollbar.new(frame) do
      command {|*args| list_w.yview *args }
      pack    'side' => 'left', 'fill' => 'y'
    end

    list_w.yscrollcommand  {|first,last| scroll_bar.set(first,last) }
    frame.pack
  end

  # Run a block with a 'wait' cursor
  def busy
    @root.cursor "watch" # Set a watch cursor
    yield
  ensure
    @root.cursor "" # Back to original
end

end

viewer = GifViewer.new(Dir["H:/ͼƬ/QQGIf/*.gif"])
viewer.run

相关文章
|
7月前
|
Python
Python TK实现的托盘
Python TK实现的托盘
73 0
|
7月前
|
Python
Python TK实现的日历
Python TK实现的日历
56 0
|
7月前
|
调度 Python
Python TK实现的闹钟
Python TK实现的闹钟
46 0
|
7月前
|
Python
tkinter之简单使用
tkinter之简单使用
55 0
|
3月前
|
前端开发 Python
python之【Tkinter模块】
python之【Tkinter模块】
48 5
|
7月前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
385 0
|
7月前
|
Python
Python tk 弹出对话框
Python tk 弹出对话框
70 0
|
7月前
|
开发者 Python
【python】tkinter组件,from Tkinter import * 与 import Tkinter 的区别
【python】tkinter组件,from Tkinter import * 与 import Tkinter 的区别
102 0
|
7月前
|
机器学习/深度学习 数据安全/隐私保护 UED
python中tkinter实现GUI程序:三个实例
python中tkinter实现GUI程序:三个实例
205 0
|
前端开发 Python
Tkinter的基础使用介绍
Tkinter的基础使用介绍。更多文章请关注个人公众号:python学习杂记
117 0