实现效果如图
实现布局: 主要布局有角色预览区、选择种族、选择属性、输入昵称等区域,最后根据所选的种族、职业与相应比例生成属性的能力值。 建立类Mainframe继承QDialog,在Mainframe上添加各个组件 初始化界面的代码如下:
建立角色类Role,这个类负责保存创建角色时,角色的属性,包括昵称,种族,职业等,实现代码如下:
实现角色预览,通过QGui.Qpixmap读入照片,根据组合框返回的text值判断将哪张照片显示在Qlabel区,实现代码如下:
建立选择组合框之后,定义选择种族方法sel_race(),将用户选择的种族保存下来。很多职业会限制某些种族选择,例如兽人不能就职圣骑士等等,种族和职业的限制表如下: 所以在选择不同种族时,职业组合框里的选项应当变化。
实现代码如下:
实现选择职业功能,同样使用组合框组件。代码如下:
选择性别:
最后阶段,要求力量、敏捷、体力、智力和智慧要求是随机值(利用随机数函数来取得随机数),但是五项属性的总和应该是100,并且应该和职业相关。例如狂战士的体力和力量就要比较高,而巫师需要较高的智力,而祭司则需要较高的智慧。各职业初始属性的大致比例应遵从下表 并且根据属性值计算生命值和魔法值:
- 生命值 = 体力×20
- 魔法值 = (智力+智慧)×10
代码实现如下:
确认角色添加成功,并且显示角色的所有属性信息在图标上
代码如下:
最后附上main方法: