如何在 C 中更新 GTK+-3.0 中的标签

2023-12-14

我似乎无法使用该功能

gtk_label_set_text();

这就是我写的:

#include <gtk/gtk.h>

int main(int argc, char *argv[] )
{
  gtk_init(&argc, &argv);

  GtkWidget *label;

  //label
  label = gtk_label_new("This is my label");

  gtk_label_set_text(label, "I cannot use this func");

  if(GTK_IS_LABEL(label)){
    g_print("IT IS A LABEL\n");
  }else if (GTK_IS_WIDGET(label)){
    g_print("well at least its a Widget\n");
  }else {
    g_print("why is it not a label?! T_T\n");
  }

  gtk_main();
  return 0;
}

it says

passing argument 1 of ‘gtk_label_set_text’ from incompatible pointer type
expected ‘struct GtkLabel *’ but argument is of type ‘struct GtkWidget *’

当我尝试编译它时。好的。我把它改为

GtkLabel *label;

但它不允许我使用 gtk_label_new();因为编译器抱怨

assignment from incompatible pointer type

然后我放弃并注释 //gtk_label_set_text 来询问程序 GTK_IS_LABEL(label);它打印出“IT IS A LABEL”。 我现在真的放弃了,请问亲爱的 Stack Overflow 社区。


由于它是 C 代码,因此您已经应用了“强制转换”指针gtk_label_new返回“基类”或结构:

╰── GtkWidget
    ╰── GtkMisc
        ╰── GtkLabel
            ╰── GtkAccelLabel

转换是通过宏完成的(参见here) code:

GtkWidget *label;

//label
label = gtk_label_new("This is my label");

gtk_label_set_text(GTK_LABEL (label), "I cannot use this func");

注意:在 C++ 中不需要强制转换GtkLabel结构继承自GtkWidget,你可以将标签存储在GtkLabel直接,但是C中没有继承这样的东西。

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

如何在 C 中更新 GTK+-3.0 中的标签 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Discord.js 机器人欢迎会员,分配角色并向他们发送 DM

    所以当新成员加入时Guild 不和谐服务器 机器人应该在某个频道 ID 766716351007686696 发送消息 向他们发送直接消息 然后添加角色 Human Bean 这是我现在拥有的代码 它不起作用 底部有错误 client on
  • JavaScriptSerializer [ScriptIgnore] 对虚拟属性无效?

    我返回了 Json myObj 操作结果 myObj 的类型为 Badge Badge 仅有的两个可能导致序列化程序循环的对象是 public class Badge public Badge public Badge String Nam
  • CUDA Stream 压缩:理解概念

    我正在使用 CUDA Thrust CUDPP 据我了解 在流压缩中 数组中的某些项目被标记为无效 然后 删除 那么 移除 到底是什么意思呢 假设原始数组A长度为 6 如果有 2 个元素无效 无论我们提供什么条件 则 系统是否创建newGP
  • 使用 WAMP 新方法连接 PHP 和 SQL Server

    在独立的 PHP 和 SQL 服务器之间创建连接的最佳方法是什么 两台服务器 服务器 a SQL 和服务器 b PHP 请注意 我使用的是 wamp 我读了一些像下面这样的文章但我想知道有没有新主意 我测试了这段代码 效果完美 try us
  • 如何在新窗口中打开表单结果?

    我的网页上的 iframe 中有一个表单 单击提交按钮后 将在包含我的网页的窗口中查看结果 如何在新窗口中打开结果 你能调整表单html本身吗
  • 比较php中的两个数组

    我使用这个代码 new array 123 gt a 456 gt b old array 123 gt a 456 gt b 那么 new数组变成这样 new array 456 gt b 123 gt c 789 gt e 正如你看到的
  • jQuery $.ajax 使用 JSONP 进行跨域调用,返回状态 200,但正在调用错误函数而不是成功

    我的 Web 应用程序正在尝试访问属于不同域的另一台服务器的信息 由于它是跨域ajax调用 因此我使用 dataType 作为 JSONP 而不是JSON 现在 在 WebInspector gt Network 选项卡中 我看到请求已成功
  • Spring @RestController 获取请求内容类型以响应 json 或 html

    如何获取请求的 Content Type 值 我们需要它来打印 json 响应或 Html 响应 我的代码是这样的 RestController public class GestorController RequestMapping va
  • 使用cmd在windows中设置环境变量

    要在 Windows 中启动我的项目 我必须使用以下命令在 cmd 中设置 java 环境变量 set JAVA HOME D Java jdk1 7 0 但它没有设置环境变量 我不知道问题是什么 等待几个小时后 我发现原因是由于两侧的空白
  • 为多人游戏提供良好的安全性

    我用eclipse做了一个游戏 我有一个服务器程序和一个客户端程序 客户端使用套接字与服务器进行通信 如果客户端启动 它将其用户名和密码发送到服务器 如果该组合存在 则客户端可以与服务器进行通信 而客户端不断读取游戏中其他人的等级并不断发送
  • Rails Admin - 删除相关对象

    我在用着导轨管理员在我的网站之一上 到目前为止 一切都很好 但我不知道如何从编辑页面中删除相关对象 例子 我有两个模型 Property 和 PropertyImage class Property has many property im
  • javafx如何禁用checkboxTreeItem中的一项?

    我是 JavaFX 新手 在复选框树视图中遇到问题 我想禁用根值中的一项 序列号但根据 JavaFX 文档 这似乎是不可能的 我禁用了点击效果cbTreeViewdisable treeItems 3 有没有办法将任何一个值变灰 或设置一个
  • firebase 数据库规则允许对具有特定信息的特定用户进行读/写

    我的 firebase 数据库规则如下 rules users uid read auth null root child users child auth uid child role val teacher write auth nul
  • 使用 Linq 或 Lambda 表达式检查复杂对象中的重复项

    我刚刚开始学习 linq 和 lambda 表达式 它们似乎非常适合在复杂的对象集合中查找重复项 但我有点困惑 希望有人可以帮助我回到快乐编码的道路上 我的对象的结构类似于 list list unique 客户标识符 我需要确保整个复杂对
  • 玩笑完成回调不可分配给 ProvidesCallback 或未定义类型的参数

    我正在尝试用笑话创建一个测试 我想使用done 回调但 Typescript 不接受它 我尝试使用 typeany jest DoneCallback或者不加任何类型但又不起作用 有什么解决方案或想法吗 it implements opti
  • 自动建议短语/句子完成

    我正在构建一个应用程序 我希望我的应用程序能够读取用户在输入文本框中输入的内容 并根据到目前为止的句子向用户提供两个事物 1 他们正在输入的可能短语列表 以便轻松自动完成 我猜我会使用预设的短语列表 我可以通过搜索来获得这些建议 2 根据句
  • PerformSelector 不工作

    MyThreadRun 方法是这样从 MyMethod 调用的 NSArray args NSArray arrayWithObjects arg1 target NSStringFromSelector mySelector nil NS
  • 单元测试 Zsh 完成脚本

    我正在尝试为 Zsh 编写一个完成脚本 我想对完成脚本进行单元测试 例如 我想测试完成情况my command h包括 help 对于鱼 我可以使用complete C my command h 然后会输出 help以及任何其他有效的完成情
  • 如何在两台具有公共IP但都位于LAN后面的机器之间进行通信(python解决方案)?

    正在寻找一个简单的 python 解决方案 假设机器A的本地IP是192 168 1 5 公共IP是111 11 111 11 机器B的本地IP是10 0 0 5 公共IP是222 22 222 22 现在我需要在这两台机器之间进行通信 你
  • 如何在 C 中更新 GTK+-3.0 中的标签

    我似乎无法使用该功能 gtk label set text 这就是我写的 include