qt qlabel:获取当前坐标的rgb

在label中画图:继承QLabel类重写paintEvent事件画图

void Label::paintEvent(QPaintEvent *event)
{
	QPainter painter;//用于画tmpPixMap,可在上面画复杂的图案
	QPixmap tmpPixMap(this->width(), this->height());
	tmpPixMap.fill(Qt::transparent);
	painter.begin(&tmpPixMap);
    //具体画图
	painter.end();
	QPainter p1(this);//用于画Label,把刚刚画好的图tmpPixMap 放到label里
	p1.drawPixmap(0, 0, tmpPixMap);
	m_bTempPixmap = tmpPixMap;
}

点击获取rgb

//鼠标松开
void Label::mouseMoveEvent(QMouseEvent *event)
{
	if (!Pressed)//成员变量bool Pressed = false;   //鼠标是否被摁压
	{
		m_nMovePos = event->pos();
		QRgb qRgb = m_bTempPixmap.toImage().pixel(m_nMovePos);
		int R=qRed(qRgb), G=qGreen(qRgb), B=qBlue(qRgb)
		QString strInfo = QString("(%1, %2, %3)").arg(R).arg(G).arg(B);
		m_ui.laColor->setText(strInfo);
		QPalette label_palette;
		label_palette.setColor(QPalette::Background, QColor(R, G, B));
		m_ui.laColor2->setAutoFillBackground(true);
		m_ui.laColor2->setPalette(label_palette);
		return QWidget::mouseMoveEvent(event);
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值