- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试使用 Glade 在 Vala 中子类化 GTK IconView 时,我遇到了段错误。这是 Vala 中的错误,还是我只是做错了什么?这是使用 vala 0.42.3。也许这与 IconView 没有 base()
构造函数有关? (参见:Chain up to 'Gtk.Box.new' not supported)
测试.vala:
using Gtk;
public class IconViewSubclass : Gtk.IconView {
public IconViewSubclass() {
}
}
public static int main(string[] args) {
Gtk.init(ref args);
var builder = new Builder.from_file("test.glade");
var window = builder.get_object("window") as Window;
var iconViewSubclass = builder.get_object("iconViewSubclass") as IconViewSubclass;
iconViewSubclass.set_pixbuf_column(0);
iconViewSubclass.set_text_column(1);
window.show_all();
Gtk.main();
return 0;
}
测试.glade:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="store">
<columns>
<!-- column-name pixbuf -->
<column type="GdkPixbuf"/>
<!-- column-name text -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkWindow" id="window">
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkIconView" id="iconViewSubclass">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin">6</property>
<property name="model">store</property>
</object>
</child>
</object>
</interface>
$ valac --pkg gtk+-3.0 test.vala && ./test
Segmentation fault
最佳答案
看起来您需要使用 expose_object()
让 Gtk.Builder 知道 IconViewSubclass
存在。这允许在 Builder UI 定义文件中使用子类型。这是一个编译但没有段错误的示例:
test.ui
:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.18"/>
<object class="GtkWindow" id="window">
<property name="window-position">GTK_WIN_POS_CENTER</property>
<property name="default-height">250</property>
<property name="default-width">250</property>
<child>
<placeholder/>
</child>
<child>
<object class="IconViewSubclass" id="iconViewSubclass">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin">6</property>
</object>
</child>
</object>
</interface>
和test.vala
:
using Gtk;
public class IconViewSubclass : Gtk.IconView {}
public static int main(string[] args) {
Gtk.init(ref args);
var builder = new Builder ();
builder.expose_object ("IconViewSubclass", new IconViewSubclass ());
try {
builder.add_from_file ("test.ui");
} catch (Error error) {
print (@"$(error.message)");
}
var window = builder.get_object ("window") as Window;
var iconViewSubclass = (IconViewSubclass)builder.get_object ("iconViewSubclass");
iconViewSubclass.set_pixbuf_column (0);
iconViewSubclass.set_text_column (1);
window.show_all();
Gtk.main();
return 0;
}
您可能想研究使用具有 Vala [GtkTemplate]
、[GtkChild]
和 [GtkCallback]
属性的模板。这些属性将告诉 Vala 为您生成样板代码。
关于oop - 如何使用 Glade 在 Vala 中子类化 GTK IconView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278014/
我正在尝试使用 Glade、PyGTK 和 Python 设置一个小的下载应用程序。我已经计划好了我想如何编写这个进度条和所有的脚本,尽管我觉得我正在以错误的方式去做,因为......好吧......
我正在尝试在 mac OSX el capan 上安装 Glade。我在 https://glade.gnome.org/sources.html 上下载了源代码 我按照源代码中带有“安装”文本的说明
我试图用glade 3.20做一个GtkHeaderBar应用程序,但每次创建我的python应用程序时,我的老学校栏都在顶部。 在glade 3.19 中,检查客户端装饰属性在顶部创建了一条线,我可
我是 gtk+ 编程领域的新手。我仍在探索许多使用选项。我将使用 C 语言进行编码。我有以下问题: 哪个更好?编写代码还是使用 glade 生成的 .glade 文件? 哪个更好用? libglade
我在 Internet 上进行了一项研究,寻找教程/文档来解释我如何在 Java Gnome 项目中使用在 Glade 中设计的 UI,但没有成功。我已经知道如何使用 Java Gnome/GTK 从
我已经阅读了一些 Glade 手册并创建了一个 GUI,其中有一个我想通过代码填充的 TreeView。空地文件是: False 3 Tree Viewe
我正在使用带有 gtk2hs 绑定(bind)的编辑器 Glade 在 Haskell 中编写 GUI。目前,我在对单选按钮进行分组时失败了。它不会让我选择组名。有人可以帮忙吗? 最佳答案 对于组中的
Glade:如何将多个参数传递给信号处理程序? 最佳答案 你在林间空地能做的事情非常有限。您可以将零个或一个对象作为用户数据传递给信号处理程序。该对象必须是一个小部件(或其他对象),也存在于 glad
我正在尝试使用 Glade/gtk/vala 制作一个简单的应用程序。到目前为止,我有这个: using Gtk; class HelloWorldApp : GLib.Object { co
我正在使用代码块和空地编写一个 C 程序。起初我以为问题出在我的代码上。我尝试了在网上找到的不使用glade(仅GTK)的示例代码,并且它有效。然后我尝试了一个只有一个窗口和一个 TextView 的
如果我在 FreeBSD 8 下静态链接 GTK+ 程序,gtk_builder_add_from_file() 突然返回错误: Invalid object type `GtkWindow' 如何解
Glade 3.14.2 似乎打开了我的 .glade 文件,但没有显示任何内容。我可以在文本编辑器中查看所有 xml 详细信息。我的 .glade 文件中的 header 是:
我正在尝试将 Glade 3 用于我在 Windows 7 上的 Ada 程序。我找到了 3.6 版的方法,但 gtk-builder-convert 未被识别为脚本。我已经尝试通过 Google 找
如何将对话窗口的按钮(例如 GtkDialog)与响应 Gtk::ResponseType 链接起来值(value)与格莱德?。 我知道如何以编程方式执行此操作,但我不知道如何使用 Glade 执行此
我正在 Glade (GTK# 3.20 + C#) 中制作应用程序界面原型(prototype),并通过 CssProvider 使用我的 CSS 样式。我有这个: 问题是我使用 GTKLayout
您好,我正在使用 gtk3 和 Glade 3.14...我想向 Glade 添加一个自定义小部件,以便我可以轻松地将其添加到我的用户界面中。 我发现空地中缺少旋钮小部件,我在其中找到了旋钮小部件 h
我想多次显示在 Glade 文件中定义的 Gtk.Dialog。 目前,我可以使用自定义按钮来调用对话框的 hide() 方法,但是,如果用户使用 Alt+F4 关闭对话框,它重新打开为空: 在控制台
首先,我是编程语言世界的新手,当然对 Python 也很陌生。 在我的工作中,我们使用 Linux 系统。我有时需要检查终端上的一些命令和脚本输出。因此,我想使用非常基本的 GUI 编写一个小型应用程
我想处理菜单单击事件,但是,正在发生此丢失处理程序警告,我哪里错了?我将信号 ab 与处理程序 abcd 连接在 menuitem6 上,在激活事件上,处理点击事件是否正确? 这是错误: abc.py
我使用glade构建了一个数据库操作GUI,对于我的添加按钮层次结构是添加->确认对话框->(如果是)添加数据。如何访问主窗体中的每个小部件值?我是 gtk 和glade 的新手,我设法消除了大部分错
我是一名优秀的程序员,十分优秀!