本文實(shí)例為大家分享了Qt自定義圖形實(shí)現(xiàn)拖拽效果的具體代碼,供大家參考,具體內(nèi)容如下
創(chuàng)新互聯(lián)專注于中大型企業(yè)的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶上千余家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注品牌網(wǎng)站設(shè)計(jì)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長!在這里自定義圖形是通過QPaintEvent事件繪畫的圖形,也可以通過自定義控件的方式添加到qt中。
首先定義類來自定義圖形,這里通過paintEvent事件來實(shí)現(xiàn)(主要就是繪畫一個(gè)圖形)
void QEventView::paintEvent(QPaintEvent *event) { resize(115+m_iLen,36); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::blue); //定義箭頭的坐標(biāo) static const QPoint pointArr[7] = { QPoint(0,10), QPoint(100+m_iLen,10), QPoint(100+m_iLen,0), QPoint(115+m_iLen,18), QPoint(100+m_iLen,36), QPoint(100+m_iLen,26), QPoint(0,26) }; int i = 0; while(i < 7) { if(i == 6) painter.drawLine(pointArr[i],pointArr[0]); else painter.drawLine(pointArr[i],pointArr[i+1]); i++; } painter.drawText(QPoint(0,22),m_sEventName); }