繁体   English   中英

GCC C++ GTK 带有 GLADE 的条目集文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM