2011-01-26 100 views
4

嗯,我在GTK中做的一個小接口有問題。將GTK窗口小部件調整到C中的vbox中012

我有一些小部件放入一個盒子中,正好有三個小部件,我把它們放入一個帶有gtk_box_pack_start的盒子中。 我用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); 

如果我把這些小部件到對準,我沒有問題,大小是固定的正確。

這是爲什麼?

回答

2

你想通過設置大小來實現什麼?至於gtk_widget_set_size_request()的文件說,

注意任何固定大小設置的內在危險 - 主題,翻譯成其他語言,不同的字體和用戶動作都可以改變一個給定的插件的適當的大小。所以,硬編碼的大小基本上不可能是正確的。

您可以設置一個小部件的大小要求,但那是不一樣的設定大小;我們不能總是得到我們想要的東西,所以在某些情況下,小部件沒有得到它所要求的大小。這是其中的一種情況。

GTK的設計使您不必爲小部件設置固定尺寸。 (請參閱文檔中的以上引用。)通常有更好的方法來實現你想要的。

在這種情況下,把你的按鈕,在GtkHButtonBoxgtk_container_add,按鈕盒包裝到您的立式機箱,設置爲FALSEexpandfill參數,當你做之前。

+0

嗨,對不起我的延遲答案。基本上,如果一個窗口小部件進入gtk_alignment,我可以調整這個窗口小部件的大小,但是如果它不在gtk_alignment中,例如放到vertical_box中,則gtk_widget_set_size_request不會起任何作用。 我不知道如果我解釋正確,對不起。 – Leber 2011-02-12 02:17:04

相關問題