在我的应用程序中,我有一个项目功能,但它需要一系列对话框才能工作。
开始时,用户必须打开现有项目或创建新项目,并且在创建新项目时,用户必须指定文件夹。
因此,在新项目或现有项目之间存在第一个选择对话框,另一个对话框将打开,以便在新项目的情况下选择文件夹。
现在,我在第一个上调用exec_()方法,并在里面做所有事情(创建第二个对话框,使用它,等等)。直接后果:它使用副作用很麻烦。
所以问题是:可以在QT中干净地链接对话框吗?
答案 0 :(得分:6)
看看 QWizard clas:
向导(在Mac OS X上也称为助手)是一种特殊类型 由一系列网页组成的输入对话框。巫师的目的 是指导用户逐步完成一个过程。巫师是 对于用户可能会发现困难的复杂或不常见的任务非常有用 学习。
答案 1 :(得分:1)
听起来像“状态机”是你的朋友。
http://www.drdobbs.com/cpp/state-machine-design-in-c/184401236 https://en.wikipedia.org/wiki/Automata-based_programming
这使您可以在对话链中具有灵活性,其中下一个对话框取决于用户在上一个对话框中选择的内容,同时保持状态逻辑在对话框之外和中心位置。
它基本上是一个while循环中的switch语句,但对于管理程序中的非线性/条件流非常有用。
希望这有帮助。