2016-08-31 6 views
0

私はGUIを構築するためにGTKでC言語を学んでいます。 私は問題がある、私はソフトウェアを非常にシンプルにpogrammingし始めます、私はエラーなしでコンパイルしますが、ウィンドウを表示せず、エラーを表示せず、警告を表示しません。 私は問題がinterfazファイルにあると思うが、私はgtkでC言語を使ってそのファイルから解析エラーを得る方法を知らない。 これは私のコードgtk + 3ビルダーから解析エラーを取得するには?

#include <gtk/gtk.h> 

int main(int argc, char **argv){ 
    GtkBuilder *programa; 
    GObject *ventana; 


    gtk_init (&argc, &argv); 

    programa = gtk_builder_new(); 
    gtk_builder_add_from_file(programa, "interfaz.ui", NULL); 

    ventana = gtk_builder_get_object(programa, "ventana"); 

    gtk_main(); 
    return 0;  
} 

であり、これはあなたが実際に、あなたがgtk_builder_get_object()を呼び出すgtk_main()

gtk_widget_show_all(GTK_WIDGET(ventana)); 

前にこれを追加しgtk_widget_show_all()を呼び出しませんが、あなた決して

<interface> 
    <object id="ventana" class="GtkWindow"> 
     <property name="visible">True</property> 
     <property name="title">BackLight's Keyboard</property> 
     <property name="border-width">10</property> 
     <property name="width">100</property> 
     <property name="height">100</property> 
     <signal name="destroy" handler="on_window_destroy" swapped="no"/> 

     <child> 
      <object id="cajaVentana" class="GtkGrid" > 
       <property name="visible">True</property> 

       <child> 
        <object id="Imagen" class="GtkImage" > 
         <property name="file">backlighticon.jpg</property> 
         <packing> 
          <property name="left-attach">0</property> 
          <property name="top-attach">1</property> 
          <property name="width">2</property> 
         </packing>      

        </object>  
       </child> 

       <packing> 
       </packing> 
      </object> 
     </child> 
    </object> 
</interface> 

答えて

1

GUIファイルコンテンツですその変数は何もしないでください。そうすれば、コード行は完全に不要になります。提案するものを追加してください。

+0

私はそれを試してみますが、うまくいきません。 –

+0

gtkbuilderの代わりに 'GtkWidget * ventana = gtk_window_new(GTK_WINDOW_TOPLEVEL);'を試してみましょう。 –

+0

くぼみを動かさないでください。 GLib GErrorsでエラーを表示する方法を知りたい助けてくれてありがとう、申し訳ありません私の悪いEngish –

1

gtk_builder_add_from_file()の最後のパラメータは、エラーがある場合にエラー情報を受け取るGErrorオブジェクトです。 gtk_builder_add_from_file()の戻り値は、エラーが発生したかどうかを示します。詳細については、GLibのドキュメントを参照してください。 (iharobの答えは、おそらく正しいのですが、エラーに対処する方法を知ることにも便利です。)

+0

こんにちは、私は、ドキュメントを読んで、私は私が控えめではないGErrrorの使い方を知らない。あなたは私に例を与えるべきです –

0

gtk_builder_add_from_file(programa, "interfaz.ui", &error); 
用ライン

gtk_builder_add_from_file(programa, "interfaz.ui", NULL); 

変化

GError *error=NULL; 

を宣言します

と表示されるエラーは

です210
fprintf (stderr, "%s\n", error->message); 
関連する問題