c++ - 将 GtkLabel 相对于 GtkDrawingArea 对齐

标签 c++ c gtk gtk2

我在 VBox 中有一个 GtkLabel 和一个 GtkDrawingArea,我想使标签相对于 GtkDrawingArea 的 X 坐标(在 VBox 中标签的下方)居中,我如何告诉 GTK 使该标签居中相对于那个“ anchor ”?这个点应该是标签的中心。

最佳答案

由于您的 GtkLabel 和 GtlDrawingArea 位于 GtkVBox 内,因此它们的位置是相对的。以下应将标签的对齐方式设置为中心:

gtk_misc_set_alignment(GTK_MISC(label), 0.5F /*X*/, 0.5F /*Y*/);

如果你不想让 GtkLabel 的文本居中,那么你可以使用 GtkAlignment 小部件:

GtkWidget* helper;

helper = gtk_alignment_new(0.5F /*X*/, 0.5F /*Y*/, 0.0F, 0.0F);
gtk_container_add(GTK_CONTAINER(helper), label);

gtk_box_pack_start_defaults(GTK_BOX(vbox), helper);

您可以调用gtk_alignment_set 函数重新对齐它。

关于c++ - 将 GtkLabel 相对于 GtkDrawingArea 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516395/

相关文章:

c++ - 基类不完整的继承

java - 在 3D 结构中添加新顶点

c - OpenCL 演示程序可以在一个系统上运行,但不能在其他非常相似的 VirtualBox 系统上运行

c - 使用 kate editor for c dev(使用 ctags 插件)

c++ - PCL:使用 RANSAC 访问 pcl::ModelCoefficients::Ptr 的字段以进行线模型近似

C++ - 类方法函数指针的 unordered_map 的初始化列表

c - 打印负数

python - 线程卡住(python w/GTK)

.net - GTK+ 和 GTK# 有什么区别,哪个是 "more multiplatform"?

c++ - 使用 Webkit < 1.3 访问 Gtk+ 中的 DOM 元素