C++ 在GTK+中使用GtkTreeView时出现的一些问题[警告];
我已经有一个GTK+应用程序。有几个小部件:GtkWindow、GtkTreeView、GtkListStore。所有用户界面都是在Glade中创建的C++ 在GTK+中使用GtkTreeView时出现的一些问题[警告];,c++,gtk,glade,C++,Gtk,Glade,我已经有一个GTK+应用程序。有几个小部件:GtkWindow、GtkTreeView、GtkListStore。所有用户界面都是在Glade中创建的 int main( int argc, char **argv ) { GtkBuilder *builder; GtkWidget *topWindow; GtkTreeView *treeView; GtkListStore *treeStore; GError *error = NULL;
int main( int argc, char **argv )
{
GtkBuilder *builder;
GtkWidget *topWindow;
GtkTreeView *treeView;
GtkListStore *treeStore;
GError *error = NULL;
gtk_init( &argc, &argv );
builder = gtk_builder_new();
if( ! gtk_builder_add_from_file( builder, UI_FILE, &error ) )
{
g_warning( "%s", error->message );
g_free( error );
return( 1 );
}
topWindow = GTK_WIDGET(gtk_builder_get_object(builder, "topWindow"));
treeStore = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore"));
treeView = GTK_TREE_VIEW(gtk_builder_get_object(builder, "treeview"));
entry1 = GTK_ENTRY(gtk_builder_get_object(builder, "entry1"));
entry2 = GTK_ENTRY(gtk_builder_get_object(builder, "entry2"));
entry3 = GTK_ENTRY(gtk_builder_get_object(builder, "entry3"));
gtk_builder_connect_signals (builder, NULL);
g_object_unref( G_OBJECT( builder ) );
gtk_widget_show( topWindow );
gtk_main();
return( 0 );
}
汇编成功:
igor@igor-desktop:~/proj/TreeView_example$ make
gcc -Wall -g `pkg-config --cflags gtk+-2.0 gmodule-2.0` -c charter.c
gcc `pkg-config --libs gtk+-2.0 gmodule-2.0` charter.o -o charter
运行应用程序时,会收到一些警告:
(charter:3728): GLib-GObject-WARNING **: value "466" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "44" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "466" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "466" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "44" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "44" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "466" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "466" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "44" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
(charter:3728): GLib-GObject-WARNING **: value "44" of type `gint' is invalid or out of range for property `xalign' of type `gfloat'
这是Glade XML文件的一部分,该文件包含GtkTreeView的说明:
<object class="GtkTreeView" id="treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore</property>
<property name="search_column">2</property>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="title">Имя</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
<attribute name="xalign">0</attribute>
<attribute name="sensitive">0</attribute>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="title">Икс</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
<property name="title">Игрек</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes"><b>TreeView</b></property>
<property name="use_markup">True</property>
</object>
</child>
</object>
符合事实的
符合事实的
列表存储
2.
Имя;
0
0
0
Икс;
1.
Игрек;
2.
符合事实的
树景
符合事实的
你能解释一下为什么我会收到警告吗
<attribute name="xalign">0</attribute>
<attribute name="sensitive">0</attribute>
<attribute name="text">0</attribute>
xml中的这些行将第一个单元格的xalign、sensitive和text设置为A,不管A是什么值,这很可能不是您想要的
在Glade中,您可以通过右键单击树视图,选择编辑…,然后转到层次选项卡来更改这些设置。您应该看到三列,每列有一个单元格渲染器 剩下的取决于你想做什么。如果您不知道和是什么,那么它们可能是意外设置的,所以只需将它们更改回-1(这相当于从XML中删除相应的属性元素)。文本可能是正确的,因此将其保留为0 如果要了解有关单元渲染器属性的更多信息,可以从和开始。不幸的是,这些并不能很清楚地解释这个概念;你可以在别处得到更好的解释 xml中的这些行将第一个单元格的xalign、sensitive和text设置为A,不管A是什么值,这很可能不是您想要的
在Glade中,您可以通过右键单击树视图,选择编辑…,然后转到层次选项卡来更改这些设置。您应该看到三列,每列有一个单元格渲染器 剩下的取决于你想做什么。如果您不知道和是什么,那么它们可能是意外设置的,所以只需将它们更改回-1(这相当于从XML中删除相应的属性元素)。文本可能是正确的,因此将其保留为0
如果要了解有关单元渲染器属性的更多信息,可以从和开始。不幸的是,这些并不能很清楚地解释这个概念;您可以在其他地方得到更好的解释。好的,那么我必须在XML中设置xalign,sensitive,text的值是多少?我可以在Glade中更改此属性的位置,我不能确定ok,我必须在XML中设置xalign,sensitive,text的值是多少?我可以在Glade中更改此属性的位置,我不能确定
column0=A column1=B column2=C