组件一chessboard:
- class chessBoard:public QWidget{
- Q_OBJECTprivate:
-  int board[17][17];
-  chess* cBoard[17][17]; 
- chess* chesses[6];
-  int peoples; QLabel *boardIcon;  //用于画 背景图片
- public: chessBoard(QMainWindow *parent); /*这里的 QMainWindow 是mainwindwo的父类 只需再次将其设为父类即可,即可用于挂载 chessboard类了*/ ~chessBoard(); void setChess(vector<player>);
-  bool isWin(chess c); void init(int num);
-  int getNum(); void newGame();
-  void setBackGround(); 
- void setPlayerInfo();};
然后
chessBoard 中的设置背景代码如下:
- void chessBoard::setBackGround(){
-  boardIcon=new QLabel(this);
-  boardIcon->setPixmap(QPixmap(":/sources/board.png")); 
- boardIcon->move(0,0); boardIcon->show();
-  boardIcon->setAttribute(Qt::WA_DeleteOnClose);}
然后我在chessBoard中调用chess的draw 函数 如下: (其中的chessIcon在 chess中已经声明为 
QLabel)
- void chess::draw(){ chessIcon=new QLabel(this); 
- switch(this->c.getColor()){ 
- case 1: chessIcon->alignment(); 
- chessIcon->setPixmap(QPixmap(":/sources/red.png"));
-  chessIcon->move(50,15); 
- chessIcon->show(); 
- chessIcon->setAttribute(Qt::WA_DeleteOnClose);
-  break; 
- case 4: chessIcon->setPixmap(QPixmap(":/soureces/green.png")); 
- chessIcon->move(0,0); chessIcon->show();
-  chessIcon->setAttribute(Qt::WA_DeleteOnClose); 
- break; 
- default: break; }}
说白了 ,就是 棋在棋盘中,画棋子时 ,棋子 总是被棋盘覆盖!
如何在 chessboard上的Label 
图片 成为底层,chess 在画label的时候能在顶层显示!!