底层Label图层 和前端 QWidget的图片显示问题

weixin_38076769 2019-09-19 01:43:45
组件一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的时候能在顶层显示!!
...全文
51 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧