`
rubynroll
  • 浏览: 205088 次
  • 性别: Icon_minigender_1
  • 来自: Wgt
社区版块
存档分类
最新评论

GtkSimpleLayout Inspector

阅读更多
Inspector介绍
Inspector是GtkSimpleLayout v0.2.x添加的一个新功能,他允许使用GtkSimpleLayout布局的程序在运行的时候探测UI的信息。
(有关GtkSimpleLayout,请看http://rubynroll.iteye.com/admin/blogs/460727)

对于web开发者来说,firebug之类的工具对于调试UI很重要,因为它可以让你在最终展现的页面中查看每一个UI元素,了解UI的布局,参数等等。因为很多东西在“设计时”是看不到的,所以运行时的探测能力非常重要。

对于桌面程序来说,如果也能有想firebug这样的工具,则对调试UI也有很大帮助。特别是对于布局非常复杂而且动态性很强的UI来说,运行时的探测能力尤其有用。

GtkSimpleLayout Inspector就是为你的程序提供这样的一个能力。下图是例子calculator.rb运行时打开Inspector和未打开Inspector的屏幕截图:



当打开Inspector功能的时候,GtkSimpleLayout自动为每一个UI元素添加一个带颜色的框,当你把鼠标移动到这个框的时候,在tooltips中就把这个UI元素的信息列出来,这些信息包括自顶向下的所有容器,局部参数,类型,以及组名,属性等等。

上面的例图显示,按钮'7‘是一个Gtk::Button,名字为'7',layout参数为[true,true](即:填充空间,自动增长),参数{:set_size_request => [30, 30]}(请求的尺寸为30x30)。其直接父容器是一个Gtk::HBox,往上依次是VBox,HBox,最顶层的容器是VBox。各个容器的layout参数也一并列了出来。

如何打开Inspector
要打开Inspector,你可以在宿主类代码中用inspector_opt来设置.

例如,打开inspector,并告诉inspector加的框的厚度为5像素:
class MyWin < Gtk::Window
  include SimpleLayout::Base
  inspector_opt :enable => true, :border_width => 5
  ....
end



或者,你也可以设置环境变量INSPECTOR_ENABLE为1,INSPECTOR_BORDER_WIDTH为5,然后运行程序,效果是一样的。设置环境变量可以让你不用改动目标程序的代码。

export INSPECTOR_ENABLE=1
export INSPECTOR_BORDER_WIDTH=5
ruby calculator.rb


Inspector的实现原理
Inspector的实现原理很简单:当你放置一个UI元件时,GtkSimpleLayout自动为这个UI元件创建一个Gtk::EventBox裹住这个UI元件,然后返回这个EventBox伪装成这个UI元件。由于这个EventBox处于上层容器和UI元件之间,它截获所有通过的参数,属性,并传递给被裹住的UI元件,同时作记录。最后在鼠标移动到这个EventBox的时候在tooltips中展现所记录的UI信息(部分信息需要实时查询)。

这个额外加入的EventBox不影响程序的运行(除了它会增加一个宽度指定的框外),也不改变UI元件的组关系,因此整个程序不用做任何改动,可以象往常一样正常运行。当inspector没有开启的时候,这些EventBox不被创建,自然也不引入任何额外的开销。

得益于GTK的UI对象模型,以及ruby的表达能力,此功能增加不到100行代码。

Enjoy it :-)
分享到:
评论

相关推荐

    Odin Inspector and Serializer v3.2.1.0

    unity序列化编辑器插件----Odin Inspector and Serializ v3.2.1.0 Odin Inspector and Serializer v3.2.1.0 Odin Inspector and Serializer v3.2.1.0 Odin Inspector and Serializer v3.2.1.0 Odin Inspector and ...

    新版appium1.22与inspector分离,需要单独下载Appium-Inspector

    新版appium1.22与inspector分离,需要单独下载Appium-Inspector

    chrome浏览器ng-inspector

    **ng-inspector for Angular** 是一个专为AngularJS框架设计的Chrome浏览器插件,它为开发者提供了一种直观的方式来检查和调试Angular应用的内部工作原理。这个强大的工具可以帮助开发者深入理解应用的数据绑定、...

    Appium-Inspector-2023.2.1 windows linux mac

    Appium Inspector 2023.2.1是一款强大的自动化测试工具,专为移动应用程序而设计,支持Windows、Linux和Mac操作系统。这个版本的更新带来了更先进的功能和优化,以帮助开发者和测试工程师高效地进行Appium自动化测试...

    ng-inspector.zip

    《Angular框架开发中的神器——ng-inspector》 在Angular框架的开发过程中,高效且精确的调试工具至关重要。ng-inspector正是一款专为Angular开发者量身定制的浏览器插件,尤其适用于谷歌浏览器。这款插件的存在,...

    AngularJS的浏览器插件ng-inspector.zip

    "ng-inspector"是针对AngularJS开发的一个非常有用的工具,尤其在调试和理解复杂的AngularJS应用时,它的作用不容忽视。 ng-inspector是一款开源的浏览器插件,适用于Chrome和Safari。通过这个插件,开发者可以在...

    appium desktop带inspector的最新版本

    appium最新版本已经去掉了inspector,需要另外安装了,非常麻烦。本版本是官网最新带inspector的版本,非常好用

    Laravel开发-inspector

    **Laravel开发-inspector** Laravel Inspector 是一款专为 Laravel 开发者设计的强大调试和分析工具,它旨在帮助Web工匠们提升开发效率,优化代码性能,并提供深入的应用洞察。通过集成Inspector,开发者可以更容易...

    Odin - Inspector and Serializer 3.0.6.zip

    《Odin - Inspector and Serializer 3.0.6:Unity开发者的高效工具》 在Unity游戏开发中,数据序列化和Inspector视图的定制是提升效率、优化代码管理和增强可维护性的重要环节。Odin - Inspector and Serializer ...

    unity插件Odin - Inspector and Serializer

    Odin - Inspector and Serializer 2.1.13.unitypackage Odin - Inspector and Serializer 3.0.13.unitypackage Odin Inspector 3.0.1.unitypackage Odin Inspector and Serializer 3.1.10.unitypackage

    node-inspector

    **Node-inspector:深入探索Node.js的调试利器** 在JavaScript的世界里,Node.js以其高性能、非阻塞I/O以及丰富的生态系统赢得了开发者们的喜爱。然而,任何编程语言在开发过程中都难免遇到bug,这时就需要强大的...

    Appium Inspector下载分享 (Windows版)

    Appium Server GUI新版本 不含Appium Inspector定位工具,需要单独下载安装。官网下载网络极不稳定,特分享该资源Appium-Inspector-windows-2022.5.4.zip

    Unity插件-Odin Inspector 3.0.4版本.zip

    在Unity中,提高开发效率和代码可维护性是至关重要的,这就是插件如Odin Inspector发挥价值的地方。Odin Inspector是一款针对Unity的高级序列化和属性检查器,它能够极大地提升开发者的生产力,使代码的调试、配置和...

    swing-inspector

    Swing-inspector是一款高效工具,专门用于帮助开发者在Java Swing应用程序中快速定位界面元素对应的源代码,从而提高代码查找和调试的效率。在Java开发领域,Swing是用于构建图形用户界面(GUI)的一个重要库,它...

    Appium-Inspector-mac-2021.9.2.dmg

    Appium Inspector,mac版,appium1.22版本后,Appium Inspector需要单独下载安装。官网下载网络不稳定,特再次储存资源,诸位可用

    appium工具 Appium Inspector使用

    appium工具 Appium Inspector使用

    WebGL Inspector chrome插件 crx格式

    WebGL Inspector是一款强大的WebGL图形调试工具,专为前端开发者设计,用于检查和优化WebGL渲染性能。在浏览器环境中,WebGL是一种JavaScript API,它允许在网页上进行硬件加速的3D图形绘制,无需插件。然而,由于其...

    Unity3D Editor类(Inspector)经验总结1

    【Unity3D Editor类(Inspector)经验总结】 在Unity3D开发中,Editor类用于自定义游戏对象在Inspector视图中的显示方式。以下是一些关键知识点: 1. **使用GUI和GUILayout**: - Editor类中的控件绘制是基于GUI...

    Odin Inspector and Serializer 3.0.2.zip

    《Odin Inspector and Serializer 3.0.2.zip》是一个针对Unity开发者的工具包,它包含了一款名为Odin Inspector的插件以及与其配套的Serializer。这个版本是3.0.2,意在提高开发者在Unity环境中的工作效率,提供更...

    Appium-Inspector-windows-2021.12.2

    新版appium1.22与inspector分离,需要单独下载Appium-Inspector

Global site tag (gtag.js) - Google Analytics