c - 如何设计一个程序,使 GUI 和程序逻辑分离

标签 c gtk decoupling

一段时间以来,我开始使用 GTK+ 编写我的第一个 C 程序。我在某种程度上学习了 C,并且使用过 PyGTK,所以我对两者都有很好的理解。但是,我从来没有用 C 创建过 GUI 程序。虽然它可以工作,但我的最后一个 GUI 程序有点乱,因为程序逻辑都与 GUI 的东西混合在一起。我读到过,最好以分离的方式编写 GUI 和程序逻辑,这样如果您切换 GUI 库,就会很轻松。

这样对吗?假设我正在将一个项目添加到可视化列表中。我是否有将项目添加到逻辑列表并在查看该列表然后更新 gui 的函数中运行它的函数?

例如,

void new_item_button_handler()
{
  add_item_to_array() /* Code dealing with program logic*/
  /*
   * Code here to look at array and update visual list using GUI commands
   */
}

执行此操作的一般过程是什么?

如有任何建议,我们将不胜感激!

编辑:

感谢您提供有关 MVC 的建议。您能否结合我给出的示例进行解释?那里有很多关于 MVC 的信息,我很难弄清楚它如何适用于我这里的代码示例。

最佳答案

我认为您正在寻找 Model-View-Controller设计模式。

关于c - 如何设计一个程序,使 GUI 和程序逻辑分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3611354/

相关文章:

java - 解耦——OOP

c - 在C中使用链表

c - Arm Cortex m4 中的随机行为和无限循环

c - 如何在Gtk中组合accel键?

c - GtkRevealer 使 TextView 绘图出现故障

ruby-on-rails - 在 Rails 应用程序中使用模块建模

c - 什么是 IOSET 以及简单蜂鸣器 (BUZZER_PIN) 的工作原理是什么?

c++ - __attribute__((constructor)) 究竟是如何工作的?

c# - 当我使用属性窗口中的 pixbuf 选项将图像添加到 gtk 窗口时,Monodevelop 不断崩溃

android - Android 上的嵌套 MVP : how to