gpt4 book ai didi

c - 在 C 中设计一个简单的 GUI 框架

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:53 25 4
gpt4 key购买 nike

<分区>

我需要为一个学校项目设计一个非常简单的 GUI 框架,它需要支持以下控件/小部件:窗口、面板、图像、标签和按钮。

  • 我想到的第一个问题是 Window 是否应该是一个控件。我认为应该如此。
  • 我们有 Window 和可以包含其他控件的 PanelButtonLabelImage 不能。所以我们需要两种基本类型的控件;一个是容器,另一个不是(我已经看到在 Gtk 实现中,后者也是一个容器,但只能包含一个 child 。它被称为 GtkBin 。我认为这是我的简单项目的开销。
  • 我遇到的第三个问题是:我需要遍历 UI 树(用于绘图),但由于 C 语言中没有多态性机制,所以它变得有些问题。

我想到了以下解决方案,利用 union。基本上我需要一些函数来将通用 Control 转换为它的实际类型。

typedef struct button {
char *image_path;
} Button;

typedef struct control_node {
Control *node;
struct control_node *next;
} ControlNode;

typedef struct panel {
ControlNode *children;
} Panel;

typedef union control_data {
Panel panel;
Button button;
} ControlData;

typedef struct control {
int x;
int y;
int type;
ControlData *data;
} Control;

因此,我想了解您对我提出的问题的看法以及对我当前策略的看法(我不是在寻找实现,而是想法/创意等)

谢谢。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com