まあ、私はGTKでやっている小さなインターフェースに問題があります。GTKウィジェットをC言語のvboxにリサイズする
私はいくつかのウィジェットを、正確に3つのウィジェットにして、それらをgtk_box_pack_start
というvboxに入れました。 私はgtk_widget_set_size_request
関数でこれらのウィジェットのサイズを変更しましたが、ウィジェットはvboxの全幅に拡張され、関数内で修正されたサイズを尊重しないので有効ではないようです。
これは作るコードの一部:
enter = gtk_button_new();
gtk_button_set_image(GTK_BUTTON(enter), gtk_image_new_from_file("iconos/submit.png"));
gtk_widget_set_size_request(enter, 195, 32);
//User,pass
login->user = gtk_entry_new();
login->passwd = gtk_entry_new();
gtk_widget_set_size_request(login->user, 195, 32);
gtk_widget_set_size_request(login->passwd, 195, 32);
gtk_box_pack_start(GTK_BOX(v_box), login->user, FALSE, FALSE, 10);
gtk_box_pack_start(GTK_BOX(v_box), login->passwd, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(v_box), enter, FALSE, FALSE, 10);
gtk_container_add(GTK_CONTAINER(window), v_box);
私が整列するように、これらのウィジェットを置けば、私は何の問題もない、サイズは右固定されています。
これはなぜですか?
こんにちは、私の遅い答えを申し訳ありません。基本的には、ウィジェットがgtk_alignmentに入っている場合、私はこのウィジェットのサイズを私が望むサイズに変更できますが、gtk_alignmentの外にある場合(例えばvertical_boxの場合)、gtk_widget_set_size_requestは何の効果もありません。 これを正しく説明してもわかりません。申し訳ありません。 – Leber
@Leber、私はあなたが文字通りウィジェットのコンテナとサイズの要求を何とかしようとしているのではない - 私は元の質問からそれを得た。私はあなたのデザインのどの部分にハードコードされたサイズを設定する必要があるのかを尋ねています。 GTKは、通常、ウィジェットのサイズをハードコードする必要がないように設計されているため、VBoxがサイズ要求をオーバーライドすることができます。だからあなたが作成しようとしている効果を言うならば、StackOverflowの人々はあなたがそれを行うのを手助けすることができます。確かにあなたが遅れているとは思わない。 – ptomato
元気ですか?私はこれをより良く説明しようとします。私はVBoxにボタンがあり、このボタンが特定のサイズ、例えば150x50を持っていることを望みます。私はgtk_widget_set_size_requestで試してみましたが、これはうまくいきません。たぶん私はこの機能の機能を理解していないかもしれません。私の英語のために申し訳ありません。詳細が必要な場合は、私に尋ねてください。ありがとう – Leber