在构造函数中访问容器子部件尺寸

2023-12-20

假设我的班级有两个人Gtk::Containers像这样:

class Example : public Gtk::VBox
{
public:
    Example();
    virtual ~Example();

private:
    Gtk::HBox m_c1; // First container
    Gtk::Grid m_c2; // Second container
};

构建一个Example是这样实现的:

Example::Example()
{
    const int nbRows{6};
    const int nbColumns{7};

    for(int col{0}; col < nbColumns; ++col)
    {
        Gtk::Button* btn {new Gtk::Button("A")};

        m_c1.pack_start(*btn);
    }

    for(int row{0}; row < nbRows; ++row)
    {
        for(int col{0}; col < nbColumns; ++col)
        {
            Gtk::Button* btn {new Gtk::Button("A")};

            m_c2.attach(*btn, col, row, 1, 1);
        }
    }

    // Layout setup:
    pack_start(m_c1);
    pack_start(m_c2);

    show_all();
}

我想做的是确保子部件m_c2与子窗口小部件的大小相同m_c1,确保两个容器之间的视觉一致性。否则,它看起来像这样:

只是为了确定,我不想m_c1成为Gtk::Grid.

这是我到目前为止所尝试过的:我使用了get_child_at()方法可从Gtk::HBox m_c1获取对其第一个孩子的引用。然后我打电话get_width() and get_height()在那个孩子身上。这个想法是为了养活m_c2的子窗口小部件这些尺寸。问题是返回的引用是nullptr.

从我读过的一些帖子来看,我的小部件似乎还没有实现,这可以解释我的困难。我怎样才能做到这一点?


您需要将网格中的每个按钮设置为水平扩展 https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-set-hexpand。然后所有的尺寸调整都会自行解决。

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

在构造函数中访问容器子部件尺寸 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • 如何将简单指针转换为固定大小的多维数组?

    我有一个函数 它接受一个指向浮点数组的指针 根据其他条件 我知道指针实际上指向 2x2 OR 3x3 矩阵 事实上 内存最初是这样分配的 例如 float M 2 2 重要的是我想在函数体中做出这个决定 而不是作为函数参数 void cal
  • 从 CLI 工具访问 Sitecore API

    我想从命令行工具中访问 Sitecore API 目的是导出数据库中有关用户的一些信息 但是我无法连接简单的 CLI 程序 举个简单的例子 using Sitecore using Sitecore Configuration using
  • 如何在排序链表上应用二分查找 O(log n)?

    最近我在链表上发现了一个有趣的问题 给定了排序单链表 我们必须从该列表中搜索一个元素 时间复杂度不应超过O log n 看来我们需要对这个链表应用二分查找 如何 由于链表不提供随机访问 如果我们尝试应用二分搜索算法 它将达到 O n 因为我
  • 如何为 UIBezierPath 提供cornerRadius

    我使用以下代码创建了一个矩形 现在我需要圆化该矩形的角 但我找不到名为layer cornerRadius的属性 有人可以帮助我吗 class OvalLayer CAShapeLayer let animationDuration CFT
  • 如果使用 onDoubleTap,InkWell 效果会延迟启动;想要在触摸小部件时立即触发

    如果您正在使用onTap onDoubleTap并排与InkWell 然后单击会延迟 300 毫秒 我知道双击识别需要时间 而且效果也有延迟 用户交互感觉很差 我尝试过的 我发现 InkWell一旦调用任何点击事件回调 效果就会启动 如果我
  • 访问 MetaMask 钱包中的私钥

    我有一个简单的 Dapp 我想签署一笔交易 但我没有字符串形式的私钥 用户正在使用 MetaMask 钱包 在他们授予 web3 访问其帐户的权限后 我如何访问私钥来签署交易 const signPromise web3 eth accou
  • 淡入班级?

    我有一个 td 它应用了一个指定背景颜色的类 我可以淡入另一个只有不同背景颜色的类吗 就像是 css class1 background color red class2 background color green mytd addCla
  • 圆内的 SVG 图像

    我想创建一个包含图像的圆圈 我已经尝试使用pattern or filter但他们都没有给我预期的结果 下面是代码
  • 从特定分支推送时触发 GitHub Action

    我们有一个分支模型 其中包含功能分支 开发分支 登台分支 用于测试 和主分支用于发布 现在我们有一个针对发行说明的操作 它在推送到暂存或主版本时使用实际发行说明创建拉取请求 但是 只有当我们将拉取请求从开发推送到暂存以及从暂存推送到主控时
  • C 编程 - 将整数转换为二进制

    我希望得到一些反对解决方案的建议 因为这是家庭作业 我想自己解决它 首先 我对 C 非常陌生 事实上 我以前从未做过任何事情 尽管我以前在大学的模块中拥有过 Java 经验 我正在尝试编写一个将单个整数转换为二进制的程序 我只允许使用按位运
  • 快速会话动态 cookie 域

    我有很多域 我正在尝试在快速会话中动态设置 cookie 域 下面的 example com 文本在域中工作正常 Sessions const RedisStore require connect redis session app use
  • 无法运行Java 17的Spring Boot应用程序

    就像一个健全性测试一样 我尝试编译然后运行默认的 Spring Boot 启动应用程序 我使用 Maven 将项目编译成 Jar 文件 但是当我厌倦运行该应用程序时 我收到了以下输出 YCApp61 WorkDir java jar MyS
  • 如何转义system.data.sqlite中的字符串?

    我正在执行 SQL 查询 system data SQLite 如下所示 var color red var command new SQLiteCommand SELECT something FROM tabletop WHERE co
  • 如何通过 zlib 和 compress2 用 C 语言编写 gz 文件

    我正在使用 zlib 编写一个在多个线程中压缩数据的程序 所以我不能使用gzwrite 我正在使用 compress2 dest len compressBound LOG BUFF SZ err compress2 Bytef compr
  • 访问:在 VBA 中使用查询来获取记录集

    我已经习惯用以下格式做记录集 Dim rs As DAO Recordset Dim strSQL As String strSQL Select field1 field2 from myTable where field1 gt 30
  • 符号解析和动态链接

    我一直在阅读有关重定位和符号解析过程的内容 并且对此有一些疑问 所以整个过程 加载执行程序 开始于exec BA OS 命令 期间exec BA OS 系统从PT INTERP分段并从解释器文件的分段创建初始过程映像 也就是说 系统不使用原
  • Android 上的 ThreeTen-Backport 错误 - ZoneRulesException:未注册时区数据文件

    我正在为我的 Android 项目使用 ThreeTen Backport 库 因为 java time 尚未在 Android 开发中实现 当我写作时LocalDate today LocalDate now or LocalTime t
  • Elasticsearch 术语和总和聚合

    我在 elasticsearch 1 5 中有如下文档 gender name unknown value 12 name male value 89 name female value 84 并非所有文档都包含三个选项 男 女 未知 我想
  • 如何使用 Entity Framework CF 在父实体之前删除子实体?

    我正在尝试使用 EF 代码优先删除数据库记录 deleteMe 和它的孩子们 deleteMe Prices foreach var deleteMe in deleteThese Delete validation if CanDelet
  • 在构造函数中访问容器子部件尺寸

    假设我的班级有两个人Gtk Containers像这样 class Example public Gtk VBox public Example virtual Example private Gtk HBox m c1 First con