永发信息网

qimage copy函数怎么使用

答案:2  悬赏:80  手机版
解决时间 2021-03-18 13:45
qimage copy函数怎么使用
最佳答案
虽然我很聪明,但这么说真的难到我了
全部回答
举个小例子: #include "qqlevel.h" QQLevel::QQLevel(QWidget *parent) : QWidget(parent) { setFixedSize(300, 200); level_button = new QPushButton(); grade_button = new QPushButton(); //分别获取0-9数字图标 QPixmap pixmap_0 = getPixmap(QString(":/level/level_value"), 10, 0); QPixmap pixmap_1 = getPixmap(QString(":/level/level_value"), 10, 1); QPixmap pixmap_2 = getPixmap(QString(":/level/level_value"), 10, 2); QPixmap pixmap_3 = getPixmap(QString(":/level/level_value"), 10, 3); QPixmap pixmap_4 = getPixmap(QString(":/level/level_value"), 10, 4); QPixmap pixmap_5 = getPixmap(QString(":/level/level_value"), 10, 5); QPixmap pixmap_6 = getPixmap(QString(":/level/level_value"), 10, 6); QPixmap pixmap_7 = getPixmap(QString(":/level/level_value"), 10, 7); QPixmap pixmap_8 = getPixmap(QString(":/level/level_value"), 10, 8); QPixmap pixmap_9 = getPixmap(QString(":/level/level_value"), 10, 9); int count = 3; int pixmap_width = pixmap_8.width(); int pixmap_height = pixmap_8.height(); //最前面LV图标 QPixmap pixmap_lv(":/level/lv"); int lv_width = pixmap_lv.width(); QPixmap total_pixmap(QSize(pixmap_width*count + lv_width, pixmap_height)); QPainter painter(&total_pixmap); //绘制LV图标 painter.drawPixmap(QRect(0, 0, lv_width, pixmap_height), pixmap_lv); //再绘制LV888图标 for(int i=0; i { painter.drawPixmap(QRect(lv_width+pixmap_width*i, 0, pixmap_width, pixmap_height), pixmap_8); } level_button->setFixedHeight(30); level_button->setIcon(total_pixmap); level_button->setIconSize(total_pixmap.size()); //分别获取皇冠、太阳、月亮、星星、...等图标 QPixmap pixmap_grade_0 = getPixmap(QString(":/level/grade"), 5, 0); QPixmap pixmap_grade_1 = getPixmap(QString(":/level/grade"), 5, 1); QPixmap pixmap_grade_2 = getPixmap(QString(":/level/grade"), 5, 2); QPixmap pixmap_grade_3 = getPixmap(QString(":/level/grade"), 5, 3); QPixmap pixmap_grade_4 = getPixmap(QString(":/level/grade"), 5, 4); //绘制5个皇冠 int grade_count = 5; int pixmap_grade_width = pixmap_grade_0.width(); int pixmap_grade_height = pixmap_grade_0.height(); QPixmap total_grade_pixmap(QSize(pixmap_grade_width*grade_count, pixmap_grade_height)); QPainter grade_painter(&total_grade_pixmap); for(int i=0; i { grade_painter.drawPixmap(QRect(pixmap_grade_width*i, 0, pixmap_grade_width, pixmap_grade_height), pixmap_grade_0); } grade_button->setFixedHeight(30); grade_button->setIcon(total_grade_pixmap); grade_button->setIconSize(total_grade_pixmap.size()); QVBoxLayout *main_layout = new QVBoxLayout(); main_layout->addStretch(); main_layout->addWidget(level_button); main_layout->addWidget(grade_button); main_layout->addStretch(); main_layout->setSpacing(20); main_layout->setContentsMargins(0, 0, 0, 0); setLayout(main_layout); } QQLevel::~QQLevel() { } QPixmap QQLevel::getPixmap(QString pixmap_name, int count, int index) { QPixmap final_pixmap; if(!pixmap_name.isEmpty() && count > 0) { QPixmap pixmap(pixmap_name); int pixmap_width = pixmap.width()/count; int pixmap_height = pixmap.height(); final_pixmap = pixmap.copy(pixmap_width*index, 0, pixmap_width, pixmap_height); } return final_pixmap; } 合并过程中有可能会出现背景变色,稍作处理即可! QImage pixmap(QSize(this->width()*WINDOW_PAGE_COUNT, WINDOW_HEIGHT), QImage::Format_ARGB32_Premultiplied); QPainter painter(&pixmap); painter.setRenderHint(QPainter::Antialiasing, true); painter.setCompositionMode(QPainter::CompositionMode_Source); painter.fillRect(pixmap.rect(), Qt::transparent); painter.setCompositionMode(QPainter::CompositionMode_SourceOver); for(int i = 0; i < WINDOW_PAGE_COUNT; i++) {    painter.drawImage(QRect(WINDOW_WIDTH*i, 0, WINDOW_WIDTH, WINDOW_HEIGHT),    QImage(QString(":/newCharacter/newFeature_%1").arg(i))); } total_label = new QLabel(this); total_label->resize(pixmap.size()); total_label->setPixmap(QPixmap::fromImage(pixmap)); total_label->move(WINDOW_START_X, WINDOW_START_Y);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大学生平时该如何与女友相处
姑姑就要结婚了可以唱什么歌给她听?(关于舍
有哪位著名的歌手或演员(男的)个子在170以
淡泊宁静用网名好听吗?
STEAM上的GMOD多人加载时间太长怎么解决
广州博展分拣中心到揭阳分拔中心需要多长时间
我已经怀孕四个半月了检查是女孩是不是可靠
中考大专和高考大专有什么区别
请问厕所蹲便池换一个新的蹲便池 需要把周围
“轶”字白话怎么念,请举例几个念白话的同音
集美大学诚毅学院 轮机工程怎么样?
听英语的CD用什么CD机好
如何将谷歌卫星地图发布为 ArcGIS S
黑猫可以贴在房间里吗
网上查询的火车票数和火车站查询的票数是一样
推荐资讯
怎么感谢团队对我的无私帮助
第一湾茶楼在哪里啊,我有事要去这个地方
禹王庙这个地址在什么地方,我要处理点事
金川邦威线缆酒泉销售中心我想知道这个在什么
紫锦花园西区地址有知道的么?有点事想过去
丰禾馅饼在什么地方啊,我要过去处理事情
数据库干嘛用的?
百福珠宝地址在哪,我要去那里办事
为什么我的手机发不出去短信,中心号码是对的
为什么有些女人的脸看上去亮亮的。是擦的什么
户口本分开了为什么农村医疗保险卡分不开
我现在在学习C1照,想同时学习摩托车。到最后
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?