您的位置:首页 > 编程语言 > Qt开发

QT实现无边框的可移动窗体

2013-10-19 22:52 246 查看
无边框窗体不可移动窗口

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
Widget w;

//w.setWindowOpacity(1);
w.setWindowFlags(Qt::FramelessWindowHint);  //这个是widget的标题栏和边框去掉
//w.setAttribute(Qt::WA_TranslucentBackground);  //这个是widget的背景弄透明

w.show();
return a.exec();
}


在相应的界面类中添加2个鼠标事件函数,实现窗口移动效果

首先在.h文件中添加3个保存坐标的变量,然后添加下面的代码就可以实现移动了

QPoint 
windowPos,mousePos,dPos;

void Widget::mousePressEvent(QMouseEvent *event)
{
this->windowPos = this->pos();
this->mousePos = event->globalPos();
this->dPos = mousePos - windowPos;

}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
this->move(event->globalPos() - this->dPos);
}


拿个测试的软件看看有边框框效果图



去除边框后的效果,是不是看上去漂亮多了


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: