• Tk库的使用(2)


    # 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

  • 相关阅读:
    js 克隆一个对象或数组
    css 透明png背景蓝色解决
    修改默认的ajaxStart, ajaxStop 显示loading
    用css定义长字符串的截断显示
    chrome 不支持小字号的文字解决
    fiddler response 乱码
    U盘装机神器UniversalUSBInstaller
    vmware虚拟机内存分配
    chrome https添加信任
    css tabindex
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035865.html
Copyright © 2020-2023  润新知