![](/img/trans.png)
[英]Set Tree Store model in glade by code - GTK Glade TreeStore C++
[英]GCC C++ GTK ENTRY SET TEXT with GLADE
我有一个小问题,我已将 GTK 与其他语言一起使用,但 C ++ 是新的,我找不到允许我使用使用 Glade 创建的界面的教程,而我找到的那些解释了其他所有内容。
我尝试在 C ++ 中编写代码,我必须在 GTK_ENTRY 中插入文本,但即使按照说明操作也没有出现任何内容,并且在编译期间显示使用替代错误。
我需要使用 GLADE,因为该软件必须支持多种语言,而且 Glade 文件是可定制的。
gtk_entry.cpp
#include <stdio.h>
#include <gtk/gtk.h>
#include <gmodule.h>
GtkWidget *MyEntry;
int main (int argc, char *argv[]){
GtkBuilder *XML;
GtkWidget *window;
gtk_init(&argc, &argv);
XML = gtk_builder_new();
gtk_builder_add_from_file (XML, "gtk_entry.glade", NULL);
window = GTK_WIDGET(gtk_builder_get_object(XML, "MyWindow"));
MyEntry = GTK_WIDGET(gtk_builder_get_object(XML, "MyEntry"));
gtk_builder_connect_signals(XML, NULL);
g_object_unref(XML);
gtk_widget_show(window);
gtk_main();
return 0;
}
extern "C" G_MODULE_EXPORT void on_Write_clicked(GtkButton *Write, gpointer user_data)
{
const gchar *TextVar;
printf("\n Verify Button Write");//Its work correctly
TextVar = "Verify Button Write"; // Work too
//doesnt appar nothing
void gtk_entry_set_text (GtkEntry* MyEntry, const gchar *TextVar);
}
extern "C" G_MODULE_EXPORT void on_Exit_clicked(GtkButton *Exit, gpointer user_data)
{
gtk_main_quit();
}
extern "C" G_MODULE_EXPORT void on_MyWindow_destroy(GtkWidget *MyWindow, gpointer user_data)
{
gtk_main_quit();
}
gtk_entry.glade
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkWindow" id="MyWindow">
<property name="can-focus">False</property>
<signal name="destroy" handler="on_MyWindow_destroy" swapped="no"/>
<child>
<object class="GtkFixed">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkEntry" id="MyEntry">
<property name="width-request">100</property>
<property name="height-request">39</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="x">56</property>
<property name="y">38</property>
</packing>
</child>
<child>
<object class="GtkButton" id="Write">
<property name="label" translatable="yes">Write Text</property>
<property name="width-request">100</property>
<property name="height-request">80</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_Write_clicked" swapped="no"/>
</object>
<packing>
<property name="x">60</property>
<property name="y">100</property>
</packing>
</child>
<child>
<object class="GtkButton" id="Exit">
<property name="label" translatable="yes">Exit</property>
<property name="width-request">100</property>
<property name="height-request">80</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="on_Exit_clicked" swapped="no"/>
</object>
<packing>
<property name="x">200</property>
<property name="y">100</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
更改以下行
//doesnt appar nothing
void gtk_entry_set_text (GtkEntry* MyEntry, const gchar *TextVar);
和
gtk_entry_set_text(GTK_ENTRY(MyEntry), TextVar);
并确保您使用-rdynamic
标志进行编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.