【发布时间】:2020-11-28 16:10:13
【问题描述】:
我正在尝试使用以下代码创建新的 GTK Notebook 选项卡,其中包含名称(作为标签)和关闭按钮(作为带有图像的按钮):
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 的建议,但我无法将浮雕和鼠标悬停效果添加到该小部件。
【问题讨论】:
-
你为什么不看看一些编写良好的具有此类按钮的 GTK 应用程序的源代码? Gedit 就是一个很好的例子。