作为最基础的棋类游戏的棋盘,无非就是画格子,画棋子,规定好棋盘上的坐标点,然后使用棋子控件的鼠标点击事件去传递棋子的坐标位置,然后在棋盘上的对应位置放置棋子。
当然了,棋类游戏的当中策略还有很多的,譬如象棋的各个棋子左右上下xy坐标是有限制的,以当前棋子的坐标为相对,以棋盘格子的宽度为移动间隔距离去计算,这些都是有些流程需要去处理的。这里我仅仅先画个棋盘,使用widget的paintEvent事件即可,写程序不要着急,一步一步来,学习任何东西都一样,先从最简单的开始,项目管理也是一样的,先从最简单的开始,教育孩子也是一样的,不要笼统的一句话就完事儿了。
譬如,我们做程序的时候,可以将一个大的程序分解为小功能,一点一点地去实现:
1.画棋盘,或者坐标轴,或者你想要画一条鱼怎么画,
2.画完之后,你可以将这个画完的MainWindow或者widget,一般是widget,其他控件都可以,button,combobox,设置listwidget,只要是widget类的子类,都可以作为painter的画图设备,单独拿出来,放到其他widget当中
3,移动画好的控件,这个控件现在被称为自定义控件,别以为自定义控件多难多神奇,你在ui上面加一个按钮,然后在设计器中选择一个widget进行提升,照样可以做到继承QWidget类代码能实现的功能,只不过看你的需求多不多了,如果你要一个圆形的按钮,一个带花的widget,那自然不能直接拖放一个按钮完事的,



