2016-05-02 6 views
0

私はgtkの世界では新しく、この小さな問題の解決策を見つけることができません。GTKでボタンのバックグラウンドシャドウを削除するには? (C)

私は、このボタンを持っている:button2

をしかし、私はボタンの背後にある小さな影を除去することができることをしたいと思います。 私はこの結果が欲しいです:button2

どうすれば解決できますか?

ボタンのコード:

sum_button = gtk_button_new_from_stock(GTK_STOCK_ADD); 
/**/ 
style = gtk_widget_get_style(sum_button); 
style->bg[GTK_STATE_PRELIGHT] = style->bg[GTK_STATE_NORMAL]; 
gtk_widget_set_style(sum_button, style); 
/**/ 
gtk_widget_modify_bg(sum_button, GTK_STATE_NORMAL, &color2); 
gtk_button_set_relief(GTK_BUTTON(sum_button), GTK_RELIEF_HALF); 
g_signal_connect(G_OBJECT(sum_button), "clicked", G_CALLBACK(PrintNumber),&t_data); 
gtk_box_pack_start(GTK_BOX (hbox3), sum_button, TRUE, TRUE, 0); 

答えて

2

gtk_button_set_relief(GTK_BUTTON(sum_button), GTK_RELIEF_NONE); 

を試してみてください。しかし、あなたは、背景色を設定することはできません。

ボタンの境界線の救済がnoneに設定されている

が、それはのように機能しますラベルは "透明"なので、親コンテナと同じbgカラーを持ちます。

このスレッドに見てみましょう:あなたは新しいコードを記述している場合https://stackoverflow.com/a/1709648/1606345

+0

[OK]を、私はこの方法でそれを試してみてください: 'gtk_button_set_relief(GTK_BUTTON(sum_button)、GTK_RELIEF_NONE); gtk_widget_modify_bg(sum_button、GTK_STATE_NORMAL、&color2); '色のついた背景が設定されていないために動作しません –

+0

これは私がやりたいことではありません。右?または別の方法で... –

+1

右、緑色のコンテナにボタンを置くことはできますか?これは機能するかもしれません。 –

0

、あなたが直接CSSでこれを行うことができますGTK 3を、使用することを検討してください:

GtkCssProvider *provider = gtk_css_provider_new(); 
gtk_css_provider_load_from_data(provider, 
    "button {" 
    " border: 0px;" 
    " background-color: green;" 
    " color: white;" 
    "}", -1, &error); 
GtkStyleContext *context = gtk_widget_get_style_context(button); 
gtk_style_context_add_provider(context, provider, 
    GTK_STYLE_PROVIDER_PRIORITY_USER); 
+0

私はgtk3を使い始めました。私は 'エラー'を** GError **エラーと宣言しました。私はあなたのコードを試しました.0のエラーをコンパイルすると、何もしないようです。ボタンは彼のスタイルを変えない。何が問題なの? –

+0

gtk_css_provider_load_from_path()関数でロードされた 'style.css'ファイルのクラスとして 'GtkButton'を使用して解決しました。しかし、 'enter_button'がGtkButtonの名前である場合、私は 'enter_button'クラス(またはid)を特定したいと思うとうまくいきません。どんな解決策ですか? –

関連する問題