x(); ..."/>
您好,登錄后才能下訂單哦!
怎么讓窗口無邊框blabla的就不寫啦
//.cpp
void Dialog::mousePressEvent(QMouseEvent *event) { px=event->x(); py=event->y();//記錄鼠標(biāo)相對(duì)窗口坐標(biāo) pxx=geometry().width();//窗口寬度 pyy=geometry().height();//窗口高度 hx=geometry().x(); hy=geometry().y();//記錄鼠標(biāo)按下時(shí)窗口屬性,窗口左上點(diǎn)坐標(biāo)(hx,hy) kx=cursor().pos().x(); ky=cursor().pos().y();//記錄鼠標(biāo)全局坐標(biāo)(大概有別的記錄鼠標(biāo)的方法但是我不會(huì)QwQ update(); } void Dialog::mouseMoveEvent(QMouseEvent *event) { if(px>pxx-10&&px<pxx&&py<pyy-10&&py>=0)//橫向(拉寬 { this->setGeometry(hx,hy,pxx+event->x()-px,pyy); } if(py>pyy-10&&py<pyy&&px<pxx-10&&px>=0)//縱向(拉長(zhǎng) { this->setGeometry(hx,hy,pxx,pyy+event->y()-py); } if(py>pyy-10&&py<pyy&&px>pxx-10&&px<pxx)//右下角(拉長(zhǎng)、寬 { this->setGeometry(hx,hy,pxx+event->x()-px,pyy+event->y()-py); } if(px>0&&px<pxx-10&&py>0&&py<pyy-10)//中間區(qū)域(拖拽 { this->setGeometry(hx+cursor().pos().x()-kx,hy+cursor().pos().y()-ky,pxx,pyy); }//對(duì)于拉長(zhǎng)拉寬,用相對(duì)窗口的坐標(biāo)和相對(duì)屏幕坐標(biāo)應(yīng)該都是可以的,但是拖拽操作只能用相對(duì)屏幕的坐標(biāo)計(jì)算 update(); }
反正就是記錄鼠標(biāo)點(diǎn)到拖拽縮放觸發(fā)區(qū)域(這里定的縮放區(qū)域在距離窗口最右和最下端10pixel的部分,拖拽區(qū)域在除了縮放區(qū)域的部分)時(shí)候的坐標(biāo)然后記錄鼠標(biāo)點(diǎn)住然后移動(dòng)時(shí)候的坐標(biāo),再加加減減就弄出來了。_ 。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。