资源简介
内容如标题,在QDialog上实现无边框,圆角,阴影,可拖拽大小,移动位置.
具体界面样式及实现细节参照我的同名博客文章.
代码片段和文件信息
#include “dialog.h“
#include “ui_dialog.h“
#include
#include
#include
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
ui(new Ui::Dialog)
{
ui->setupUi(this);
isLeftPressDown = false;
dir = NONE;
setMouseTracking(true);
setWindowFlags(Qt::framelessWindowHint);//---gtj 无边框
setAttribute(Qt::WA_TranslucentBackground);//---gtj 设置窗口透明
setSizeGripEnabled(true);//---gtj 右下角的小拖拽
//---------gtj 阴影效果
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;
effect->setOffset(44);//产生阴影效果方向,如果dx为负数
effect->setColor(QColor(00050));//阴影颜色
effect->setBlurRadius(10);//设定阴影的模糊度
ui->widgetBg->setGraphicsEffect(effect);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::mouseReleaseEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton) {
isLeftPressDown = false;
if(dir != NONE) {
this->releaseMouse();
this->setCursor(QCursor(Qt::ArrowCursor));
}
}
}
void Dialog::mousePressEvent(QMouseEvent *event)
{
switch(event->button()) {
case Qt::LeftButton:
isLeftPressDown = true;
if(dir != NONE) {
this->mouseGrabber();
} else {
dragPosition = event->globalPos() - this->frameGeometry().topLeft();
}
break;
case Qt::RightButton:
this->close();
break;
default:
QDialog::mousePressEvent(event);
}
}
void Dialog::mouseMoveEvent(QMouseEvent *event)
{
QPoint gloPoint = event->globalPos();
QRect rect = this->rect();
QPoint tl = mapToGlobal(rect.topLeft());
QPoint rb = mapToGlobal(rect.bottomRight());
if(!isLeftPressDown) {
this->region(gloPoint);
} else {
if(dir != NONE) {
QRect rMove(tl rb);
switch(dir) {
case LEFT:
if(rb.x() - gloPoint.x() <= this->minimumWidth())
rMove.setX(tl.x());
else
rMove.setX(gloPoint.x());
break;
case RIGHT:
rMove.setWidth(gloPoint.x() - tl.x());
break;
case UP:
if(rb.y() - gloPoint.y() <= this->minimumHeight())
rMove.setY(tl.y());
else
rMove.setY(gloPoint.y());
break;
case DOWN:
rMove.setHeight(gloPoint.y() - tl.y());
break;
case LEFTTOP:
if(rb.x() - gloPoint.x() <= this->minimumWidth())
rMove.setX(tl.x());
else
rMove.setX(gloPoint.x());
if(rb.y() - gloPoint.y() <= this->minimumHeight())
rMove.setY(tl.y());
else
rMove.setY(gloPoint.y())
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11608 2018-08-20 10:43 ui_dialog.h
文件 123 2017-11-18 15:34 images\max.png
文件 130 2017-11-18 15:34 images\min.png
文件 168 2017-11-18 15:33 images\quit.png
文件 537 2017-11-18 20:38 images\sereach.png
文件 130046 2017-08-26 19:19 bg.jpg
文件 5769 2018-08-20 10:42 dialog.cpp
文件 915 2018-08-20 10:42 dialog.h
文件 11668 2018-08-20 10:43 dialog.ui
文件 234 2018-08-16 11:19 image.qrc
文件 448 2018-08-16 10:22 Ji_Gui_RoundRectDialog.pro
文件 179 2013-09-10 13:53 main.cpp
目录 0 2018-08-16 11:19 images
----------- --------- ---------- ----- ----
161825 13
- 上一篇:教学系统设计 复习重点 有它不愁!!
- 下一篇:CPU SPEC 2006
相关资源
- Qt截图小
- PyQt4入门指南 PDF中文版
- Qt常用图标资源png
- qt下图片循环显示的几个很好的,包括
- QT将应用程序缩小到右下角任务栏的系
- Qt creator 做的计算器工程文件
- LABVIEW-动画界面设计(小触摸屏APP)
- A题 运动界面追踪的相关资料 两相流
- 北邮嵌入式实验_MQTT协议实验过程及代
- Qt类继承关系图
- Qt4迁移至Qt5完全指南
- 基于QT局域网聊天系统毕业论文
- 修改Keil5的背景色
- qtcreator + Keil MDK armcc +openocd 编译 调试
- 实现了异常管理流程QtSharpCore.zip
- Delphi软件界面模板..rar
- 4412开发板linux-QT下使用wfi设置
- Qt中文语言包丨PyQt5汉化包附汉化说明
- QTP百度云盘连接.txt
- qt编程下实现点击按钮调用外部程序
- cyusb-mingw-lib.rar
- qtopia下的简易pda应用程序
- 基于QT 点菜系统客户端程序
- Qt Office 集成
- 漂亮的界面设计.zip
- 4G通过MQTT协议ONENET
- 水稻抽穗期QTL DTH2的图位克隆和功能分
- 水稻耐盐萌发能力的遗传分析和QTL定
- 水稻籽粒硒含量的QTL定位及遗传分析
- 利用籼粳亚种片段代换系对花粉半不
评论
共有 条评论