GTK+要自定义按钮控件大小,但无法缩小到某个程度,提供一个可能的解决办法。
- .c 局部代码:
// 窗口,
GtkWidget *my_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* 省略 */
// 固定布局
GtkWidget *my_fixed = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(my_window), my_fixed);
gtk_widget_show(my_fixed);
// 按钮
GtkWidget *my_button = gtk_button_new_with_mnemonic("一个带文本的按钮");
gtk_fixed_put(GTK_FIXED(my_fixed), my_button, 10, 10);
gtk_widget_set_size_request(my_button, 100, 20); // 大小 100 * 20
gtk_widget_show(my_button);
gtk_widget_set_name(GTK_WINDOW(my_button), "mybutton");
g_signal_connect(my_button, "clicked", G_CALLBACK(my_callback), NULL);
按钮大小可以通过固定布局下的gtk_widget_set_size_request函数进行调整,但无法缩小到某个值,原因是存在默认非0的内边距,可以通过CSS设置控件格式解决。
- .css 代码:
#mybutton
{
padding: 0px; // * 重点:干掉内边距,就可以缩小
background: #EFEFEF;
border-radius: 5px;
}