我现在正在使用Ruby开发一个需要GUI的小工具。当然,我使用tk来实现GUI,它应该包含一个组合框,我的代码就像:
require 'tk'
require 'tkextlib/bwidget'
root = TkRoot.new('height' => 615, 'width' => 205){title 'Window'}
combobox = Tk::BWidget::ComboBox.new(root)
combobox.values = [1, 2, 3, 4]
combobox.place('height' => 25, 'width' => 100, 'x' => 10, 'y' => 10 )
Tk.mainloop
但是,这似乎不起作用,因为每次运行程序时运行时错误“Ruby TkPackage都找不到包BWidget”提示。但我检查了库,实际上可以在tkextlib文件夹中找到bwidget文件夹。
有人知道为什么这不起作用吗?
答案 0 :(得分:2)
根据official site中的Windows安装教程,您应该从RubyInstaller site安装Ruby,确保选中包含Tk / Tcl支持的选项。
如果您使用RVM,请尝试重新安装运行rvm reinstall ruby-2.0.0 --with-tcl --with-tk
的当前Ruby版本(假设Ruby 2.0是您当前的版本)。
答案 1 :(得分:2)
使用RubyInstaller-2.4.1,可以按照MSYS2安装tk和BWidget包。在cmd
中运行以下命令(运行32位版本的Ruby时,将x86_64
替换为i686
):
ridk exec pacman -S mingw-w64-x86_64-bwidget
gem install tk
这应该为Tk::BWidget
添加必要的库。
答案 2 :(得分:0)
您的系统上可能缺少bwidget工具包。
BWidget工具箱是Tcl / Tk的高级小部件集(Tcl / Tk的扩展小部件)。它包含小部件,例如进度条,3D分隔符,框架,平移或滚动的窗口,按钮框,笔记本或对话框,以及复合小部件,例如组合框,旋转框和树小部件等。
在Ubuntu 18.04中,我必须安装tcl / tk扩展名才能使用:
sudo apt-get update
sudo apt-get install bwidget