linux - 当窗口不可见时计算 GtkFrame 的边框大小

标签 linux gtk gtk2

我想计算 GtkFrame 的左边框和上边框大小.我使用以下代码:

static void computeborder(GtkWidget *frame)
{
    GtkAllocation alloc, child_alloc;
    int borderTop, borderLeft;

    gtk_widget_get_allocation(frame, &alloc);
    GTK_FRAME_GET_CLASS(frame)->compute_child_allocation(GTK_FRAME(frame), &child_alloc);

    borderTop = child_alloc.y - alloc.y;
    borderLeft = child_alloc.x - alloc.x;

    printf("BORDER TOP: %d BORDER LEFT %d\n", borderTop, borderLeft);
}

这工作正常,但如果顶级窗口托管 GtkFrame已经显示。但是,我需要在包含我的 GtkFrame 的顶级窗口之前了解边框大小。显示小部件。

如果顶层窗口里面包含我的GtkFrame还没开通,(-1,-1)alloc 中返回和 (1,1)child_alloc 中返回.如果顶层窗口已经打开,则会返回正确的尺寸,我可以计算边框尺寸。

但是,当顶层窗口隐藏时,我需要计算边框大小。那么如何计算我的 GtkFrame 的边框大小呢?在这种情况下?

我正在使用 GTK 2。

最佳答案

这些值取决于实现,因为它们需要有关目标显示器等的信息。理论上,不同的显示器可以有不同的设置,这将使尺寸发生变化。

在请求尺寸之前,您可以在顶层窗口中尝试 gtk_widget_realize()gtk_widget_map() 或两者

关于linux - 当窗口不可见时计算 GtkFrame 的边框大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115733/

相关文章:

linux - 原始 ICMP 套接字与内部堆栈 windows/linux 的交互

c - 如何在 linux 中为我现有的 C 程序创建头文件以连接 MySql?

java - Eclipse Mars/Neon Marketplace 在 Ubuntu 12.04 中崩溃

python - 使用 Python(PyQt、PyGTK、wxPython、IronPython 等)创建 GUI 的最佳库

c++ - 如何在 GTK2 中设置 GTKListStore/GTKComboBox 的背景?

linux - 如何自动为大列表中的每个项目添加双引号和逗号?

linux - 如何在 Debian Linux 中检查驱动器是否存在

编译 64 位 Linux 的 32 位 GTK+ 应用程序

c - 如何防止按钮默认获得焦点

c - 如何使用 gtk3 在 gtk_dialog 窗口中打包小部件