底层Label图层 和前端 QWidget的图片显示问题
组件一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的时候能在顶层显示!!