闲着没事干,肝个冰墩墩吧。使用QPainter绘制实现,源代码在末尾。
效果:
源码:
代码语言:javascript复制class BingDwenDwen : public QWidget
{
Q_OBJECT
protected:
void paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QPainterPath path0;
path0.moveTo(312, 270);
path0.cubicTo(331, 284, 354, 284, 367, 271);
painter.drawPath(path0);
QPainterPath path1;
path1.moveTo(312, 271);
path1.cubicTo(333, 277, 353, 286, 367, 270);
painter.drawPath(path1);
painter.setPen(QPen(QColor("#2f4f4f"), 1));
QPainterPath path2;
path2.moveTo(251, 238);
path2.cubicTo(253, 270, 316, 266, 296, 218);
painter.drawPath(path2);
QPainterPath path3;
path3.moveTo(250, 237);
path3.cubicTo(254, 199, 293, 212, 296, 217);
painter.drawPath(path3);
QPainterPath path4;
path4.moveTo(393, 255);
path4.cubicTo(418, 257, 438, 215, 398, 208);
painter.drawPath(path4);
painter.setPen(QPen(QColor("#000000"), 1));
QPainterPath path5;
path5.moveTo(393, 255);
path5.cubicTo(365, 244, 372, 202, 398, 208);
painter.drawPath(path5);
painter.setPen(QPen(QColor("#000000"), 2));
QPainterPath path6;
path6.moveTo(249, 86);
path6.cubicTo(197, 59, 152, 115, 176, 154);
painter.drawPath(path6);
QPainterPath path7;
path7.moveTo(250, 88);
path7.cubicTo(284, 64, 375, 67, 395, 81);
painter.drawPath(path7);
QPainterPath path8;
path8.moveTo(395, 82);
path8.cubicTo(417, 54, 490, 66, 458, 135);
painter.drawPath(path8);
QPainterPath path9;
path9.moveTo(458, 136);
path9.cubicTo(472, 151, 491, 174, 492, 200);
painter.drawPath(path9);
QPainterPath path10;
path10.moveTo(177, 157);
path10.cubicTo(146, 191, 140, 238, 137, 281);
painter.drawPath(path10);
QPainterPath path11;
path11.moveTo(136, 283);
path11.cubicTo(47, 389, 72, 440, 120, 423);
painter.drawPath(path11);
QPainterPath path12;
path12.moveTo(120, 423);
path12.cubicTo(151, 406, 141, 382, 149, 370);
painter.drawPath(path12);
QPainterPath path13;
path13.moveTo(149, 372);
path13.cubicTo(164, 429, 192, 421, 197, 556);
painter.drawPath(path13);
QPainterPath path14;
path14.moveTo(198, 556);
path14.cubicTo(229, 584, 300, 567, 291, 550);
painter.drawPath(path14);
QPainterPath path15;
path15.moveTo(309, 519);
path15.cubicTo(286, 515, 277, 535, 291, 549);
painter.drawPath(path15);
QPainterPath path16;
path16.moveTo(310, 518);
path16.cubicTo(320, 521, 338, 510, 329, 553);
painter.drawPath(path16);
QPainterPath path17;
path17.moveTo(329, 555);
path17.cubicTo(356, 590, 435, 573, 427, 546);
painter.drawPath(path17);
QPainterPath path18;
path18.moveTo(499, 316);
path18.cubicTo(477, 470, 431, 409, 428, 546);
painter.drawPath(path18);
QPainterPath path19;
path19.moveTo(499, 315);
path19.cubicTo(662, 212, 531, 116, 490, 202);
painter.drawPath(path19);
QPainterPath path20;
path20.moveTo(207, 474);
path20.cubicTo(220, 542, 196, 568, 279, 550);
painter.drawPath(path20);
QPainterPath path21;
path21.moveTo(207, 474);
path21.cubicTo(329, 517, 264, 516, 278, 550);
painter.drawPath(path21);
QPainterPath path22;
path22.moveTo(339, 522);
path22.cubicTo(345, 555, 369, 564, 412, 546);
painter.drawPath(path22);
QPainterPath path23;
path23.moveTo(338, 520);
path23.cubicTo(430, 472, 440, 440, 413, 547);
painter.drawPath(path23);
QPainterPath path24;
path24.moveTo(139, 297);
path24.cubicTo(47, 389, 112, 473, 147, 363);
painter.drawPath(path24);
QPainterPath path25;
path25.moveTo(505, 291);
path25.cubicTo(618, 225, 539, 124, 500, 212);
painter.drawPath(path25);
QPainterPath path26;
path26.moveTo(329, 243);
path26.cubicTo(328, 251, 358, 262, 364, 241);
painter.drawPath(path26);
QPainterPath path27;
path27.moveTo(329, 243);
path27.cubicTo(328, 226, 367, 234, 364, 242);
painter.drawPath(path27);
QPainterPath path28;
path28.moveTo(500, 213);
path28.cubicTo(500, 234, 512, 261, 504, 291);
painter.drawPath(path28);
QPainterPath path29;
path29.moveTo(219, 281);
path29.cubicTo(245, 319, 352, 239, 299, 192);
painter.drawPath(path29);
QPainterPath path30;
path30.moveTo(219, 280);
path30.cubicTo(180, 245, 255, 175, 298, 192);
painter.drawPath(path30);
QPainterPath path31;
path31.moveTo(365, 219);
path31.cubicTo(391, 292, 452, 312, 458, 273);
painter.drawPath(path31);
QPainterPath path32;
path32.moveTo(364, 219);
path32.cubicTo(379, 149, 464, 214, 456, 273);
painter.drawPath(path32);
QPainterPath path33;
path33.moveTo(140, 298);
path33.cubicTo(137, 327, 145, 347, 148, 362);
painter.drawPath(path33);
painter.setPen(QPen(QColor("#00ffff"), 4));
QPainterPath path34;
path34.moveTo(285, 121);
path34.cubicTo(76, 208, 185, 413, 330, 404);
painter.drawPath(path34);
QPainterPath path35;
path35.moveTo(289, 120);
path35.cubicTo(523, 76, 567, 413, 333, 405);
painter.drawPath(path35);
painter.setPen(QPen(QColor("#6a5acd"), 4));
QPainterPath path36;
path36.moveTo(284, 129);
path36.cubicTo(77, 219, 206, 415, 335, 399);
painter.drawPath(path36);
QPainterPath path37;
path37.moveTo(285, 129);
path37.cubicTo(525, 78, 548, 415, 338, 400);
painter.drawPath(path37);
painter.setPen(QPen(QColor("#ff4500"), 4));
QPainterPath path38;
path38.moveTo(189, 286);
path38.cubicTo(254, 461, 489, 384, 476, 275);
painter.drawPath(path38);
QPainterPath path39;
path39.moveTo(189, 283);
path39.cubicTo(155, 103, 468, 62, 476, 272);
painter.drawPath(path39);
painter.setPen(QPen(QColor("#ffd700"), 4));
QPainterPath path40;
path40.moveTo(240, 344);
path40.cubicTo(388, 451, 573, 287, 403, 154);
painter.drawPath(path40);
QPainterPath path41;
path41.moveTo(238, 342);
path41.cubicTo(100, 188, 313, 94, 400, 152);
painter.drawPath(path41);
painter.setPen(QPen(QColor("#adff2f"), 4));
QPainterPath path42;
path42.moveTo(401, 357);
path42.cubicTo(240, 410, 134, 238, 253, 165);
painter.drawPath(path42);
QPainterPath path43;
path43.moveTo(255, 164);
path43.cubicTo(440, 70, 531, 320, 404, 357);
painter.drawPath(path43);
}
};
// 使用
BingDwenDwen b;
b.setWindowTitle("Qt自绘-冰墩墩");
b.resize(650, 650);
b.show();