如何在Ruby TK中创建日历小部件
我正试图用以下代码在Ruby Tk中创建一个日历小部件: 需要“tk” 需要“TXTXTLIB/iwidgets” 调试=[] 开始 root=TkRoot.new{title'Ruby/Tk Calendar'} cal=Tk::Iwidgets::Calendar.newroot{ 轮廓“黑色” 工作日背景“灰色90” 周末背景“白色” 命令{p cal.get} } cal.pack'pady'=>10 加州电视台节目'11/1/2006' 设置初始窗口几何图形;i、 尺寸和位置。 温w,温h=250195 root.minsizewin_w,win_h win\u lf=root.winfo\u屏幕宽度-win\u w/2 根.geometry{win_w}x{win_h}+{win_lf}+50 设置调整大小权限。 root.resizebalse,false 使Cmnd+Q按预期工作。 root.bind'Command-q'{Tk.root.destroy} 主回路 确保 是否将调试放入DEBUG.empty? 终止 但是,我收到以下信息: 找不到包Itk RuntimeError TkPackage找不到包Itk运行时错误如何在Ruby TK中创建日历小部件,ruby,calendar,widget,tk,Ruby,Calendar,Widget,Tk,我正试图用以下代码在Ruby Tk中创建一个日历小部件: 需要“tk” 需要“TXTXTLIB/iwidgets” 调试=[] 开始 root=TkRoot.new{title'Ruby/Tk Calendar'} cal=Tk::Iwidgets::Calendar.newroot{ 轮廓“黑色” 工作日背景“灰色90” 周末背景“白色” 命令{p cal.get} } cal.pack'pady'=>10 加州电视台节目'11/1/2006' 设置初始窗口几何图形;i、 尺寸和位置。 温w,
我已经安装了tcl软件包,但仍然无法工作。我正在将Fedora 31与ruby 2.6.5一起使用。这个答案将在撰写本文时安装ruby的最新版本,以及最新兼容的Tcl版本 注意:在安装Ruby 2.7.0之后,$gem install tk表示Tcl/Tk8.6不受支持[;]它将无法正常工作。因此,我们必须将Tcl的使用限制在8.5版。我们将通过安装ActiveTcl 8.5版来实现这一点 这些步骤适用于Debian Stretch,因此,对于Fedora 31,YMMV.: 创建一些目录: $mkdir~/install $mkdir~/install/temp $mkdir~/progra 使用web浏览器,从ActiveState下载。然后,安装它: $pushd~/install/temp $tar zxf~/Downloads/ActiveTcl-8.5*.tar.gz $cd ActiveTcl-8.5* $./install.sh 回答其安装问题:
Please specify the installation directory.
Path [/opt/ActiveTcl-8.5]: ~/progra/ActiveTcl-8.5
Please specify the directory for the demos.
Path [~/progra/ActiveTcl-8.5/demos]:
Please specify the runtime installation directory.
Path [~/progra/ActiveTcl-8.5]:
$echo'导出路径=$HOME/progra/ActiveTcl-8.5/bin:$PATH'>>~/.bashrc
$echo'export MANPATH=$HOME/progra/ActiveTcl-8.5/bin/man:$MANPATH'>>~/.bashrc
安装rvm所需的一些系统包:
$sudo apt get安装curl dirmngr gnupg
根据以下步骤安装Ruby环境管理器:
$\curl-sSLhttps://get.rvm.io |bash-s--忽略点文件
$echo'将RVM添加到脚本的路径。确保这是最后一次更改路径变量。“>~/.bashrc
$echo'导出路径=$PATH:$HOME/.rvm/bin'>>~/.bashrc
$echo'[-s$HOME/.rvm/scripts/rvm]]&&source$HOME/.rvm/scripts/rvm将rvm作为函数加载到shell会话*中*'>~/.bashrc
$exit
检查并使用rvm:
$type rvm | head-n1应该说‘rvm是一个函数’。
$rvm列表已知
$rvm安装2.7.0-启用共享-启用pthread-使用tk-使用tcl
安装Tk gem所需的系统包:
$sudo apt get安装libx11 dev
安装Tk gem并检查Tk安装:
$gem安装tk
$ruby-W0-e需要“tk”;p Tk::Tk_PATCHLEVEL
$ruby-W0-e需要“tk”;需要“txtlib/iwidgets”;p‘好’
现在,当我运行您的程序时,我看到一个日历小部件。请包含ruby-e require'tk'的输出;p Tk::Tk_PATCHLEVEL.FWIW,使用我的旧但可靠的Tk版本8.5.12和Ruby版本2.2.5p319的组合,您的代码在另一个包上请求“tkextlib/iwidgets”时失败,表示:TkPackage找不到包Itcl.FWIW,TkDocs教程页面的现代最佳实践部分及其Tk扩展部分不鼓励使用iWidget。这是教程中唯一提到它的地方。你为Fedora31安装了iwidgets包吗?我找到了一个。Web搜索找不到包Itk生成此错误报告:。那有用吗?非常感谢!我做了所有的步骤,它的工作!!