常用代码片记录1
窗口无边框
setWindowFlags(Qt::FramelessWindowHint);
setWindowFlags(Qt::CustomizeWindowHint);
//从其他博客中摘录的部分
Qt::CustomizeWindowHint //标题栏也没有 按钮也没有
Qt::WindowTitleHint //窗口只有一个关闭按钮
Qt::WindowSystemMenuHint //窗口只有一个关闭按钮
Qt::WindowCloseButtonHint //窗口只有一个关闭按钮
Qt::WindowMaximizeButtonHint //最小化按钮不可用,关闭按钮不可用,也就是只有最大化可用
Qt::WindowMinimizeButtonHint //还原按钮不可用
Qt::SubWindow //窗口没有按钮但是有标题栏
Qt::Desktop //没有显示在桌面也没在任务。但是任务管里器里还是有的
作者:炫彩灵感
来源:CSDN
原文:https://blog.csdn.net/xuancailinggan/article/details/48176325
版权声明:本文为博主原创文章,转载请附上博文链接!
窗口拖动代码 .h文件
/*窗口移动*/
protected:
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
private:
bool _is_down;
QPoint _point;
.cpp文件
/*实现窗口移动*/
void Channel::mousePressEvent(QMouseEvent *e)
{
if(e->button() != Qt::LeftButton)
return;
/*label_title是一个当做标题栏的标签*/
int x = ui->label_title->x();
int y = ui->label_title->y();
int rx = ui->label_title->width();
int ry = ui->label_title->height();
int cur_x = e->pos().x();
int cur_y = e->pos().y();
if(cur_x>x && cur_y>y && cur_x<rx+x && cur_y<ry+y)
{
_is_down = true;
_point = e->globalPos();
}
}
void Channel::mouseMoveEvent(QMouseEvent *e)
{
if(_is_down)
{
QPoint n_pos = e->globalPos();
QPoint update_pos = mapToParent(n_pos - _point);
move(update_pos);
_point = n_pos;
}
}
void Channel::mouseReleaseEvent(QMouseEvent *)
{
_is_down = false;
}