gtk标题布局调整

⌚Time: 2025-05-25 00:01:00

👨‍💻Author: Jack Ge

gtk2.0程序需要一个主标签居中显示结果,还有副标签显示其他内容。

一开始使用主标签和副标签使用同一个GtkLabel,使用gtk_label_set_markup给分段文字设置样式,但是最后的结果就是副标签虽然文本比主标签小,但是背景高度一样,不协调。因为背景色是填充整个label标签的高度的,而不是填充文本高度。

所以分不同GtkLabel显示,主标签一个,3个副标签3个,把他们加入一个GtkHBox里面。代码就像这样

gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel1,true,false,5);//主标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel2,true,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel3,true,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel4,true,false,5);//副标签

副标签的第3个参数是扩张导致平分空间,不好看,只让主标签扩张,代码改成

gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel1,true,false,5);//主标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel2,false,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel3,false,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleHBox),g_resultTitleLabel4,false,false,5);//副标签

副标签挤到了最后但是。办法是把主标签和副标签加入到一个水平容器里面,让他们都不扩张,紧接在一起。水平容器在横向扩张。


GtkWidget *resultTitleLabelHBox = gtk_hbox_new(false,0);
gtk_box_pack_start(GTK_BOX(resultTitleHBox),resultTitleLabelHBox,true,false,0);

gtk_box_pack_start(GTK_BOX(resultTitleLabelHBox),g_resultTitleLabel1,false,false,5);//主标签
gtk_box_pack_start(GTK_BOX(resultTitleLabelHBox),g_resultTitleLabel2,false,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleLabelHBox),g_resultTitleLabel3,false,false,5);//副标签
gtk_box_pack_start(GTK_BOX(resultTitleLabelHBox),g_resultTitleLabel4,false,false,5);//副标签

效果实现了