工程存放的路径在:Examples\Qt-XX.XX.XX\widgets\painting\affine
其中XX.XX.XX为Qt的版本号,如:5.14.1。
该工程的ArthurFrame的构造函数中有如下代码:
m_tile = QPixmap(128, 128);
m_tile.fill(Qt::white);
QPainter pt(&m_tile);
QColor color(230, 230, 230);
pt.fillRect(0, 0, 64, 64, color);
pt.fillRect(64, 64, 64, 64, color);
pt.end();
将上面的
QColor color(230, 230, 230);
改为:
QColor color(0, 0, 0);
即黑色,就成为了如下的黑白棋盘:
上面只是画出128*128范围内为黑色棋盘,调用如下代码,可以在painEvent事件中将整个窗体画满:
painter.drawTiledPixmap(rect(), m_tile);
而这种黑白棋盘在图像识别项目中(如:opencv)经常用来测试算法。这里实现棋盘代码没啥高深的,而往往我们一般会通过设置窗体背景图片来实现,很少用过代码来实现这种背景底图。
类似功能博文参考:《利用QPixmap和调色板类实现画刷填充窗体背景》