我試圖用以下代碼創建包含名稱(作爲標籤)和關閉按鈕(作爲帶圖像的按鈕)的新GTK Notebook選項卡:在Mono/GTK中創建可關閉的選項卡
Label headerLabel = new Label();
headerLabel.Text = "Header";
HBox headerBox = new HBox();
Button closeBtn = new Button();
Image closeImg = new Image(Stock.Close, IconSize.Menu);
closeBtn.Image = closeImg;
closeBtn.Relief = ReliefStyle.None;
headerBox.Add(headerLabel);
headerBox.Add(closeBtn);
headerBox.ShowAll();
MyNotebook.AppendPage(childWidget, headerBox);
這似乎工作得很好;但是,該按鈕大小需要大約1.5 - 2倍,因此按鈕內部的圖像周圍會有很多額外的空間。看過remove inner border on gtk.Button我現在看到,罪魁禍首是GtkButton的「內部邊界」風格屬性,但是(對GTK來說是新手)我似乎無法弄清楚如何覆蓋它的值。
有沒有這樣做的一些方法,我失蹤了?我對於不使用按鈕/圖像組合沒有任何保留,因此歡迎任何更明顯的建議。
注意:我已經看到鏈接問題中使用EventBox的建議,但我無法將該Relief和鼠標懸停效果添加到該Widget。
你爲什麼不看有這幾樣按鈕的一些精心編寫GTK應用程序的源代碼? Gedit就是一個很好的例子。 – ptomato 2011-01-06 17:11:30