无法以编程方式减小 gtk 窗口的大小

2024-04-14

以编程方式调整 gtk 窗口大小时,我似乎遇到了问题。问题是,一旦我将窗口的宽度和高度增加到 800x600,我似乎无法将其缩小回原来的大小 400x200。 下面是示例代码。有人遇到过这样的问题吗?

#include <gtk/gtk.h>

static gboolean is_clicked = FALSE;

static void Child_window_resize( GtkWidget *widget,
               GtkWidget *window)
{
    if(!is_clicked)
    {
        g_print("Inside If block increase bool value %d\n",is_clicked);
        gtk_widget_set_size_request(window,800,600);
        is_clicked = TRUE;
    }
    else
    {
        g_print("Inside Else block decrease bool value %d\n",is_clicked);
        gtk_widget_set_size_request(window,400,200);
        is_clicked = FALSE;
    }
}

int main(int argc, char* argv[])
{
    GtkWidget *window;
    GtkWidget *fixed;
    GtkWidget *resizebutton;

    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_size_request(window,400,200);
    gtk_window_set_resizable(GTK_WINDOW(window),TRUE);
    gtk_window_set_title(GTK_WINDOW(window), "Demo Resize");
    gtk_window_set_decorated(GTK_WINDOW(window),FALSE);
    gtk_signal_connect(GTK_OBJECT(window), "destroy",
                        GTK_SIGNAL_FUNC(gtk_exit), NULL);

    gtk_container_set_border_width(GTK_CONTAINER(window), 10);
    // creating a fixed GTK_CONTAINER
    fixed = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(window),fixed);
    gtk_widget_show(fixed);

    resizebutton = gtk_button_new_with_label("Resize");
    gtk_widget_set_size_request(resizebutton, 80, 60);
    gtk_fixed_put(GTK_FIXED(fixed), resizebutton, 0, 0);

    gtk_signal_connect(GTK_OBJECT(resizebutton), "clicked",
                GTK_SIGNAL_FUNC(Child_window_resize), window);

    gtk_widget_show(resizebutton);
    gtk_widget_show(window);
    gtk_main();
    return 0;
}

遵守使用...

gcc -Wall -Werror -g resize.c -o resize -export-dynamic `pkg-config --cflags --libs gtk+-2.0 gthread-2.0`

任何帮助深表感谢。


代替gtk_widget_set_size_request(), 你需要gtk_window_resize() https://developer.gnome.org/gtk3/stable/GtkWindow.html#gtk-window-resize.

从链接的手册中:

void
gtk_window_resize (GtkWindow *window,
                   gint width,
                   gint height);

按照几何形状调整窗口大小,就好像用户已经这样做了一样 限制。默认的几何约束是窗户不能 小于他们的尺寸要求;要覆盖此约束,请调用gtk_widget_set_size_request()将窗口的请求设置为较小的 价值。

If gtk_window_resize()在第一次显示窗口之前调用 时间,它会覆盖设置的任何默认大小gtk_window_set_default_size().

窗口大小不得调整为小于 1 x 1 像素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法以编程方式减小 gtk 窗口的大小 的相关文章

  • 什么是 ADO.NET?

    我编写了一些 Access 数据库并使用了一些轻型 VBA 并且有一个 OO 类 现在我正在编写一个 C 数据库应用程序 我已经安装并连接了 VS 和 System Data SQLite 并输入了我的表和列 但这就是我陷入困境的地方 我正
  • 实体框架,高效的NavigationProperty.OfType查询

    我在使用每表类型 TPT 继承在 EF4 中构造有效查询时遇到问题 我有一个名为Episode 并且每个情节可以有多个事件 有几种不同类型的事件都源自称为Event 我想过滤不包含特定类型事件的所有剧集 Episode有一个导航属性 它是其
  • 用于 C# 和 iPhone 应用程序的 MongoDB

    我正处于设计应用程序的初始阶段 该应用程序将具有用 C 实现的后端 该后端将使用 IIS 上托管的 WCF Web 服务为其他平台提供数据 iPhone 就是其中之一 由于是个人项目 所以想用它来学习MongoDB 我已经知道有社区开发的
  • ASP.NET MVC:DropDownListFor 未选择任何选项

    我用它来填充 ASP NET MVC 视图中的下拉列表 调试这个我可以看到Selected属性设置为true当它应该是的时候 但是当渲染视图时 列表中的任何选项都不
  • Azure 搜索 .NET SDK 自定义分析器

    没有太多背景 这是我的问题 要使用 C 中的 NET SDK 创建新的 Azure 搜索索引 使用文档中提供的酒店示例 我的代码如下所示 public class Hotel System ComponentModel DataAnnota
  • 如何在 C 中的 for (;;) 循环中声明多个变量?

    我认为可以在一个变量中声明多个变量for loop for int i 0 char ptr bam i lt 10 i 但我刚刚发现这是不可能的 GCC 给出以下错误 错误 char 之前应有不合格的 id 你真的不能在一个变量中声明不同
  • 了解编译器如何在初始化中使用普通的 {}-list

    考虑以下玩具代码 class Y public Y int int cout lt lt Y ctor n class X public X initializer list
  • 如何在线程中调用带有多个参数的方法?

    我正在构建一个 C 桌面应用程序 如何在线程中调用采用多个参数的方法 我有一个名为 Send string arg1 string arg2 string arg3 的方法 我需要使用名为 SendingThread 的线程调用此方法 有人
  • OrderBy / ThenBy 循环 - C# 中的嵌套列表

    我有一个嵌套列表 List
  • 在 C++ 中将 unix 时间戳转换为星期几?

    如何根据任意 Unix 时间戳 秒 确定加利福尼亚州的星期几 太平洋时间 我四处搜寻 但没有找到 C 的内置库 UTC 通常比 PT 早 8 小时 但只需从 Unix 时间戳中减去 8 小时并创建一个tmstruct 不起作用 因为这会折扣
  • Mono.Cecil 类似 Type.GetInterfaceMap 之类的东西吗?

    系统 反射 类型包含获取接口映射 http msdn microsoft com en us library system type getinterfacemap aspx这有助于确定哪些方法从接口实现某些方法 Does 莫诺 塞西尔包含
  • Mac OS X El Capitan 可以运行为 Yosemite 编译且需要 /usr/gnu64/lib 中的库的软件吗?

    Sorry there s a bit of background necessary you could try skipping to the Question heading 自远古以来 无论如何 在上个千年的某个时候 我创建了诸如
  • std::线程构造和执行

    我在 中找不到任何信息文档 http en cppreference com w cpp thread thread thread是否能保证线程对象构造完成后线程实际上正在运行 换句话说 是否可以保证线程构造函数完成后线程函数已经被执行 一
  • Web API 获取多部分/表单数据响应的最简单方法

    我有问题 但我看不到我做错了什么 我想用最简单的方法来让它工作 稍后我会让它变得更复杂 但目前只想命中 post 方法 我什至不关心里面的代码当前是否正在工作 我唯一关心的是它会发回 OK 200 回复 目前 我要么收到内部服务器错误 50
  • ASP.NET C# 捕获类中的所有异常

    我知道这不是正确的做法 而且根本不干净 我只是想知道这是否可能 如果我有一个包含很多方法的类 public class Foo methodA methodB methodC 是否可以捕获所有可能发生的异常 而不必在每个方法中编写 try
  • 访问 ASP.NET 中 App_Code 中未声明的类

    我有时定义业务逻辑类来 帮助 我的 ASPX 代码隐藏类 对我来说 将它们都包含在代码隐藏文件中是最有意义的 因为它们一起工作 但是 我偶尔想从 App Code 中定义的更高级别的类访问业务逻辑类 但它们不能在文件外部自动访问 因此 问题
  • std::atomic 将一对原子 int32 视为一个原子 int64?

    我有一对 unsigned int32 std atomic
  • 加速Cuda程序

    要更改哪一部分来加速此代码 代码到底在做什么 global void mat Matrix a Matrix b int tempData new int 2 tempData 0 threadIdx x tempData 1 blockI
  • 如何在 C 中将向量参数传递给 OpenCL 内核?

    我在将向量类型 uint8 参数从 C 中的主机代码传递到 OpenCL 内核函数时遇到问题 在主机中 我将数据存储在数组中 cl uint dataArr 8 1 2 3 4 5 6 7 8 我的真实数据不仅仅是 1 8 这只是为了便于解
  • GetWindowLong(int hWnd, GWL_STYLE) 在 C# 中返回奇怪的数字

    我使用 GetWindowLong 窗口 api 来获取 C 中窗口的当前窗口状态 DllImport user32 dll static extern int GetWindowLong IntPtr hWnd int nIndex Pr

随机推荐

  • CSS - 页面右侧的图像,文本未环绕在其周围

    这可能是一个简单的问题 但我无法弄清楚 我想使用 CSS 将图像放在页面的右侧 而不是在其周围环绕文本 我想要这样的 img text text text text text text text 如果我在图像上进行 float right
  • 为什么 android-inapp-billing-v3 库需要两次尝试购买?

    我正在尝试使用 android inapp billing v3 库在我的简单应用程序中实现应用内购买 我正在使用这个库 https github com anjlab android inapp billing v3 https gith
  • 根据“几个因素”斜率更改 ggplot 中的线条颜色

    更新 我有以下数据 我想根据 3 个因素 I II III 的斜率在组之间画一条线 set seed 205 dat data frame t rep c I II III each 10 pairs rep 1 10 3 value rn
  • 最快的C++序列化?

    我正在寻找一种非常快速的 C 二进制序列化技术 我只需要序列化对象中包含的数据 没有指针等 我希望它尽可能快 如果它特定于 x86 硬件 这是可以接受的 我熟悉执行此操作的 C 方法 作为测试 我对几种技术进行了基准测试 我发现 C 方法比
  • 前往 source.cloud.google.com 获取

    我有一个托管在 source cloud google com 上的项目 我希望使用go get并使用模块来管理它 当我做go get 我得到以下信息 go get source cloud google com
  • 视图隐藏在 UINavigationBar iOS 7 下面

    早些时候 我的项目使用的是 iOS 6 1 最近我已经切换到 iOS 7 对于我知道的很多更改 我更新了我的代码 但是我观察到了一个奇怪的行为 我在每个屏幕上的视图都隐藏在导航栏下方 重新定位视图解决了 iOS7 的问题 但为旧版 iOS
  • App Engine Python:AttributeError:“模块”对象没有属性“Stock”

    我只是在生产中遇到此错误 在本地主机上它运行良好 Traceback most recent call last File base python runtime python lib versions 1 google appengine
  • 在 JS/jQuery 中绑定方向键

    如何在 Javascript 和 或 jQuery 中将函数绑定到左右箭头键 我查看了 jQuery 的 js hotkey 插件 包装内置绑定函数以添加参数来识别特定键 但它似乎不支持箭头键 document onkeydown func
  • Node.js SOAP 客户端参数格式

    我在使用 Node js 的 Node soap 模块作为客户端将某个特定的 Soap 参数正确格式化为第 3 方 SOAP 服务时遇到问题 此方法的 client describe 表示此特定输入应采用以下形式 params param
  • 在 PHPExcel 中复制样式和数据

    我想将某个范围的所有数据和样式复制到其他单元格 例如我想从 A4 I15 复制 然后完全粘贴我想要从 A16 复制的内容和样式 我该怎么做 这就是我要复制的内容 我知道只复制数据而不复制样式 并使用以下代码执行此操作 cellValues
  • 从 Maven 设置 TestNG 的详细级别

    当我运行测试时 我讨厌盯着闪烁的光标而不知道正在运行什么 为了解决这个问题 我在所有测试中添加了完成消息 然而我意识到这是一个非常老套的解决方案并且增加了一些废话 假设TestNG的详细级别打印测试描述 我如何在Maven中设置详细级别 请
  • 查找出现次数最多的单词

    搜索文档中出现次数最多的单词的最佳方法 算法 是什么 查找文档中出现次数最多的单词可以通过简单的 O n 时间复杂度完成直方图 http en wikipedia org wiki Histogram 基于哈希 histogram lt n
  • 正则表达式在特定单词模式处分割字符串

    我正在尝试拆分一个可能如下所示的字符串 International Bank for Reconstruction Development NAICS 928120 SIC 6081 World Bank NAICS 928120 SIC
  • 在接到电话时将应用程序置于最前面

    当我接到电话时 我想将我的应用程序带到电话接听屏幕前面 我在接到电话后完成了所有编码部分 但该应用程序并没有出现在前面 它刚刚打开并停留在电话应答屏幕下方 我想将我的应用程序带到此屏幕前面 我做了如下的事情 Intent i new Int
  • 如何在 Swift 3 中为在 for 循环期间修改的数组编写 for 循环?

    所以 我有一个与此类似的 for 循环 for var i 0 i lt results count i 1 if results i lt 5 results removeAtIndex i i 1 这曾经有效 但是当我将其更改为首选 S
  • 什么是 CLR 类?

    我在 google 上搜索了 CLR 并从 wikipedia 找到了它是什么 但我想知道 CLR 类或更具体地说 CLR 实体类型是什么 尤其是在 ASP NET 中 CLR 不是类 公共语言运行时 CLR 是 Microsoft NET
  • Blob.generate_signed_url() 失败 AttributeError

    因此 我尝试使用以下方法为我的 Google Cloud Storage 对象生成临时的全局可读 URLgoogle cloud storagePython 库 https googlecloudplatform github io goo
  • CSS“ch”单元的意外行为

    我正在使用ch用于指定宽度的 CSS 单位div包含文本 我使用的是等宽字体 但是 如果我设置width 80ch 我第一个得到 80 个字符n行 其中n始终是 24 不确定这是否重要 但从那时起只有 79 个字符 这如下面的屏幕截图所示
  • PyCharm 和 reStructuredText (Sphinx) 文档弹出窗口

    让我们想象一下 我想看到一个简单方法的文档字符串弹出窗口PyCharm4 5 社区版 也在 5 0 中尝试过 我在两个文件中都写下了这些文档字符串epytext语法 自 2008 年起不再支持 Epydoc 生成器 并且仅适用于 Pytho
  • 无法以编程方式减小 gtk 窗口的大小

    以编程方式调整 gtk 窗口大小时 我似乎遇到了问题 问题是 一旦我将窗口的宽度和高度增加到 800x600 我似乎无法将其缩小回原来的大小 400x200 下面是示例代码 有人遇到过这样的问题吗 include