因为QMdiArea的主要作用是为了实现多窗口,因此我通过自定义QLabel类,让每个自定义QLabel对象,随机带上素材库中扑克牌。把每一个自定义的QLabel视为一个QWidget,这样通过QMdiArea的相关函数,就实现发牌,收牌和清空操作了。
这个只是模拟一下而已。
代码解析
这里只把QMdiArea的部分说一下,自定义QLabel类,很简单,大家自己看看吧!
classExample(QMainWindow):def__init__(self):super().__init__()self.InitUI()defInitUI(self):self.setWindowTitle('关注微信公众号:学点编程吧--扑克牌模拟')self.mid=QMdiArea()self.setCentralWidget(self.mid)sendOnecardAct=QAction(QIcon('./res/sendOnecard.ico'),'发1张牌',self)sendOnecardAct.triggered.connect(self.sendOnecard)sendFivecardsAct=QAction(QIcon('./res/sendFivecard.ico'),'随机5张牌',self)sendFivecardsAct.triggered.connect(self.sendFivecards)clearcardAct=QAction(QIcon('./res/clear.ico'),'清除牌',self)clearcardAct.triggered.connect(self.clearCards)foldcardAct=QAction(QIcon('./res/fold.ico'),'收牌',self)foldcardAct.triggered.connect(self.foldCards)toolbar=self.addToolBar('工具栏')toolbar.addAction(sendOnecardAct)toolbar.addAction(sendFivecardsAct)toolbar.addAction(clearcardAct)toolbar.addAction(foldcardAct)toolbar.setTool