3

一开始我想说我刚开始学习QT,所以我对这方面的了解真的不深。我写了简单的任务管理,当然它是一个控制台应用程序。我使用了类似于 MVC 模式的逻辑(控制器、视图、动作、模型)。

例如,让我们以用户登录为例。我创建了 LoginController 类的实例,然后 LoginController 创建了正在等待用户输入数据的 LoginView 实例 - 登录名、密码。登录名和密码保存为 LoginView 成员。然后在 LoginController 中读取这些数据并将它们作为参数传递给 UserVerificationAction 构造函数。此类的构造函数将此数据保存为其类的成员。接下来在 LoginController 中,我调用 UserVerification 类的方法 - action() 来验证登录名和密码。然后根据验证结果创建 MenuController 实例或 LoginFailiedView 实例。这种机制是整个程序中的用户(CreateUserController、AddTaskController)等。我使用了虚拟方法,所以 MenuController 包含大约 20 行代码并且非常易于阅读。

我想使用 Qt 来实现更精确的 GUI 我想使用信号和插槽机制,但我有一个难题。也许最好在 LoginView 类中创建一个插槽,然后创建动作实例,而不是将输入的数据传递给 LoginView 成员,然后在 LoginController 中创建实例和动作类。也许有更好的方法来做到这一点。我希望你给我一些关于我应该如何正确地做的提示

ps对不起我的英语

4

2 回答 2

1

在 Qt 中,“控制器”的概念有些模糊。它往往是模型和视图的一部分。这并不意味着您不能编写控制器来链接模型和视图逻辑。

通常你会看到一个为它的动作发出信号的视图。然后将它们直接连接到模型上的兼容插槽或您编写自己的插槽的子类中。

例如,如果您有一个主窗口。此窗口可能会创建一个模型和一个视图作为子项。然后它可以在连接模型和视图的窗口子类上定义槽。这意味着您的窗口是一个视图和一个控制器。

于 2012-12-30T19:12:41.193 回答
0

Qt 提供模型/视图架构。
它引入了 3 个类:Model、View 和 Delegate,用于存储、呈现和编辑数据。

我相信这就是您正在寻找的。

于 2012-12-30T18:54:59.963 回答