GTK
文章平均质量分 70
慢走胜过快跑
这个作者很懒,什么都没留下…
展开
-
GTK tutorial 十五
g_application_real_activate函数首先判断用户是否为GApplication的activate信号设置了信号处理函数,如果没设置且activate函数还是用默认的函数g_application_real_activate,那么就会有warning出现。因此, real_closure->va_marshal被设置为node->va_marshaller. 由之前的分析知道node->va_marshaller的值为g_cclosure_marshal_VOID__VOIDv。原创 2024-07-02 11:38:15 · 550 阅读 · 0 评论 -
GTK tutorial 十四
color selection widget,使用户能够自由选择颜色。在很多应用中,当我们选择颜色时就会弹出一个能够交互的配色窗口。这个窗口的功能就是此widget实现的。下面实现一个配色窗口来示例此widget的用法。原创 2024-06-13 15:02:29 · 394 阅读 · 0 评论 -
GTK tutorial 十三
Spin Button用于让用户在一个范围内的数值中选择一个数字。它包含一个text entry box,并且在entry box旁边有用于上下翻的箭头按钮。entry box也能够直接被编辑。下面举例说明其用法。原创 2024-06-13 11:12:05 · 449 阅读 · 0 评论 -
GTK tutorial 十二
Dialogs widget 是一个预封装了一些小部件的window.装的部件包括一个在窗口顶部的vbox,vbox中包含一ge separartor以及一个hbox.Dialog widget 主要为用户弹出消息。对与dialog widget的使用,主要是对其中的hbox的使用。Rulers widget 通常用于在窗口中标记鼠标指针的位置。rulers有水平的,也有垂直的。下面的例子是使用rule实现一个600x400 pixel的画布。原创 2024-06-11 20:52:37 · 291 阅读 · 0 评论 -
GTK tutorial 十一
当你将鼠标指针放在一个按钮或者其他widget上一段时间,这些文本字符串就会显示出来。他的用法很简单,在调用gtk_tooltips_new创建完成后,调用gtk_tooltops_set_tips对tooltips和widget进行绑定就可以了。Label没有自己的X window,因此,不能发送信号。Arrow widget用于显示一个箭头,箭头可以朝向很多方向,并且有很多样式。与Label 一样,arrow 不会发射信号。Process Bars 用于显示操作的状态。arrow 的用法距离说明如下。原创 2024-06-11 14:23:58 · 360 阅读 · 0 评论 -
GTK tutorial 十
toolbar 通常用来将一些widget合并成组,这样利于对组内widget的外形及布局进行定制。一般,toolbar会包含带图标的button、label和tooltips。当然,其他的widget也能往里放。NoteBooks widget是一个“page"的集合。这些“pages”的内容会相互覆盖,每次只能查看一个“pages”的内容。此widget 有两个版本,一个创建横向的box,一个创建纵向的box.接下来举例说明此widget的用法。下面的例子对其用法进行说明。下面距离说明其用法。原创 2024-06-07 14:51:35 · 252 阅读 · 0 评论 -
GTK tutorial 九
Aspect Frames widget 与 frame widget 类似,区别在于,此widget强制设置了放置在其中的widget的纵横比,为了符合此纵横比,此widget根据需要会调整此widget所包含的空间。当你预览一个图片时,你最大化窗口,图片跟着放大, 那么图片的纵横比是不是要与之前的一致呢。scrolled window 用于创建一个可滚动的区域,此区域中可以放入任何类型的widget.不论区域中的widget的尺寸多大,都能通过滚动条对区域中的widget进行查看。1,看看会发生什么。原创 2024-06-06 19:47:53 · 912 阅读 · 0 评论 -
GTK tutorial 八
比如,这些widget不能接受event、如果他们的尺寸设置不合适,你也不能进行缩放,等等问题。下面的例子显示了如何使用EventBox,例子的功能是,当放大窗口时,会有更多的文本内容出现,当点击文本内容时,程序会退出。Alignment widget的功能是,根据Alignment widget的尺寸放置widget在其window中。Fixed Container的功能是,可以将widget放在其窗口的固定位置,这个位置是相对与其窗口的左上角的。下面的例子显示了Fixed Container的用法。原创 2024-06-06 15:03:25 · 409 阅读 · 0 评论 -
GTK tutorial 七
toggle button是check button 和radio button的实现基础。为了改变toggle button以及其raido button、check button的状态,需要调用函数 gtk_toggle_button_set_active,当调用此函数导致状态改变后,button会发送“clicked”和 “toggled”信号。Radio button与check button类似,但是它们是成组出现的,且每次只能选择组中的一项。下面的例子显示了radio button 的用法。原创 2024-06-05 20:02:22 · 369 阅读 · 0 评论 -
GTK tutorial 六
range widget 包含scrollbar widget 和scale widget. 所有的rang widget 都包含"trough"和“slider"。range widget 的 update policy用于指定在用户交互期间,adjustment的value值变化的时机和发出value_changed信号的时机。例如,可以使用scale widget 调整一张照片的放大程度、控制颜色的亮度、指定在截屏软件的截屏时间。原创 2024-06-05 14:52:06 · 408 阅读 · 0 评论 -
GTK tutorial 五
一种方式是,当widget发生调整时,各个widget都发送自己的信号,这些信号的类型可能不同。另一种方式是将调整后的新数据传递到信号处理函数或者让应用查看widget的数据结构以确保调整已经发生。但,也可以将几个widget的调整绑定到一起,当对一个widget进行调整时,其他相关的widget会自动进行相应的调整。对于此问题,GTK定义了一个叫Adjustment的object,Adjustment不是widget,而是一种以更抽象、更灵活的形式对各个widget的调整进行传递和存储的方式。原创 2024-06-04 16:46:36 · 163 阅读 · 0 评论 -
GTK tutorial 三
我们创建的widget叫做Tictactoe,如题目所说,它是一个组合widget,类似与FileSelection. 它由一个3x3的toggle button 组成。尽管GTK提供了很多基础的widget供我们使用,但是总有些时候我们需要创建自己的widget. 当然通过创建一个全新的widget,也有助于我们对GTK的了解。接下来我们会创建一个全新的组合widget,通过此widget的创建,来了解当我们调用gtk_*_new来使用GTK提供的的widget时,背后发生的事。原创 2024-05-31 17:17:11 · 238 阅读 · 0 评论 -
GTK tutorial 二
GTK widget的设计使用的是OO的思想,但是,却是用C语言来实现的。对属于一类的所有widget的实例(例如所有的Button),他们共有的信息存储在他们所属的类的结构里。为了实现类之间的继承,类结构体的第一个成员必须是此类的父结构体。并且,类结构只存储一份。还有一个结构体,每个类的实例化都会对应一个。此结构体用于存储每个实例化对象所特有的信息。我们称这个结构体为对象结构体,与类结构体类似,它的第一个成员是其父类所对应的对象结构体。下面的树形结构显示了各个数据结构之间的层级关系。原创 2024-05-31 14:37:49 · 235 阅读 · 0 评论 -
GTK tutorial 一
GTK(GIMP ToolKit)是一个用于创建图形化的用户接口的库。GIMP的全称是GNU Image Manipulation Program.GTK最开始是用于开发GIMP的。GTK依赖于GDK(GIMP Drawing Kit)、gdk-pixbuf、Glib和Pango.GTK是一个面向对象的API.虽然GTK是用C语言写的。它的面向对象的实现是通过类的思想及回调函数来实现的。gdk-pixbuf用于客户端图片管理。在GTK2.0以后,GLib的类型系统是GTK中类的层次结构的基础。原创 2024-05-31 10:02:33 · 821 阅读 · 0 评论