在QT中连接Dialogs的最佳方法是什么?

时间:2016-11-02 10:32:06

标签: qt pyqt pyside qdialog

在我的应用程序中,我有一个项目功能,但它需要一系列对话框才能工作。

开始时,用户必须打开现有项目或创建新项目,并且在创建新项目时,用户必须指定文件夹。

因此,在新项目或现有项目之间存在第一个选择对话框,另一个对话框将打开,以便在新项目的情况下选择文件夹。

现在,我在第一个上调用exec_()方法,并在里面做所有事情(创建第二个对话框,使用它,等等)。直接后果:它使用副作用很麻烦。

所以问题是:可以在QT中干净地链接对话框吗?

2 个答案:

答案 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

  1. 在您的情况下,您将从运行对话框1的初始状态启动状态机。
  2. 您运行对话框1,当它从exec()返回时,确定和 将您的机器更新为新状态。
  3. 然后为新状态运行相应的对话框。依此类推,直到你进入一个对话链结束的状态。
  4. 这使您可以在对话链中具有灵活性,其中下一个对话框取决于用户在上一个对话框中选择的内容,同时保持状态逻辑在对话框之外和中心位置。

    它基本上是一个while循环中的switch语句,但对于管理程序中的非线性/条件流非常有用。

    希望这有帮助。