我一直想用Qt编写一个简单的GUI游戏(它将是一个非常简单的游戏,没什么特别的)。我一直想知道的是,如何创建多个窗口并在需要时显示它们?例如,战斗屏幕和库存屏幕。用户应该只看到其中一个,但应该能够在需要时访问另一个。我正在使用堆叠小部件,但我不确定这是否正确。另外,在设计器中设计窗口或编码窗口是否更好?
答案 0 :(得分:4)
StackWidget当然可以完成您想要做的事情。它并不总是用于这种事情的原因是它所有的屏幕都是在开始时预先创建的并且始终存在。这意味着初始化需要更长的时间,并且您在任何时候都在使用比您需要的资源更多的资源
但正如你所说,如果这是一个简单的游戏,那么我没有看到它的大问题。同样容易,你也可以创建一个空的布局,并根据需要交换库存和游戏面板。
将我的投票添加给其他建议使用设计师的人。使用设计器然后通过代码操作布局,操作等等要容易得多。
您可以看到Designer手册here
所以这就是我的建议:
创建你的“battleScreen.ui” - 这是你的战斗屏幕的设计器文件及其中的所有内容,然后创建你的“inventory.ui”。这些都可以是QWidgets,或QFrame,或任何有意义的。
然后创建你的“Game.ui”,这将是你的QMainWindow。
在您的游戏主窗口中,您可以添加您的QStackWidget,并将您的广告资源和战斗屏幕放在堆栈小部件中。
如果你不知道该怎么做...... 1)将QWidget拖入表单(进入堆栈小部件) 2)选择新的QWidget并右键单击。 3)选择“促进......” 4)填写信息以将QWidget推广到您的库存类 提升的类名称:库存类的名称 头文件:库存类的头文件 5)单击“添加” 6)单击“推广”。
希望有所帮助。
答案 1 :(得分:0)
由于我不确定你的目标是什么,我无法建议堆叠小部件是否合适,但我认为你可以使用设计师和样式表完成很多工作。如果您需要对GUI的某些部分进行编码,您可以随时放入占位符小部件,并将其替换为编码项目,或者让它们成为占位符的子项。
答案 2 :(得分:0)
一般性问题的一般答案: