Qt模仿QQ聊天窗口界面(三)
Qt模仿QQ聊天窗口界面(三)- 截图
- Qt模仿QQ聊天窗口界面(三)- 截图
- 简述
- 效果图
- 代码篇
- 后期规划
- 结尾
简述
此篇在原来的基础上增加了QQ截图功能。在一个大佬的基础上进行了二次开发。
参考链接:Dharkael
相关博客:
Qt模仿QQ聊天窗口界面(一)
Qt模仿QQ聊天窗口界面(二)
效果图
代码篇
//这里代码太多,我就不贴出来了,有需要的盆友
//可以加我QQ:雨田哥-工作号:3246214072
//放大镜部分代码
void AmplifierWidget::paintEvent(QPaintEvent *event)
{__super::paintEvent(event);QPainter painter(this);painter.setRenderHint(QPainter::SmoothPixmapTransform);//绘制放大镜图片painter.drawPixmap(6, 6, 120, 88, m_pixmap.scaled(120, 88));//绘制背景图painter.drawPixmap(0, 0, width(), height(), QPixmap(":/TalkWindowShell/Resources/screenImg/Magnifier.png"));painter.setPen(Qt::white);QFont font = painter.font();font.setPixelSize(12);painter.setFont(font);//绘制选择框大小painter.drawText(6, 98, 120, 16, Qt::AlignLeft, QString("%1x%2").arg(m_selection.width()).arg(m_selection.height()));QColor pixcolor = m_pixmap.toImage().pixel(m_pixmap.width() / 2, m_pixmap.height() / 2);//绘制中心RGB颜色painter.drawText(6, 112, 120, 16, Qt::AlignLeft, QString("rgb(%1,%2,%3)").arg(pixcolor.red()).arg(pixcolor.green()).arg(pixcolor.blue()));
}void AmplifierWidget::setAmplifierWidgetPixmap(const QPixmap& pixmap, QRect selection)
{m_pixmap = pixmap;m_selection = selection;update();
}//颜色选择部分代码
void QColorPicker::initControl()
{m_thickness = 1;m_curColor = "rgb(255, 0, 0)";ui.color1->setProperty("color", "rgb(0, 0, 0)");ui.color2->setProperty("color", "rgb(170, 0, 0)");ui.color3->setProperty("color", "rgb(85, 170, 255)");ui.color4->setProperty("color", "rgb(200, 200, 200)");ui.color5->setProperty("color", "rgb(170, 0, 127)");ui.color6->setProperty("color", "rgb(0, 85, 127)");ui.color7->setProperty("color", "rgb(170, 170, 127)");ui.color8->setProperty("color", "rgb(130, 149, 46)");ui.color9->setProperty("color", "rgb(170, 0, 255)");ui.color10->setProperty("color", "rgb(255, 0, 0)");ui.color11->setProperty("color", "rgb(255, 170, 0)");ui.color12->setProperty("color", "rgb(255, 129, 19)");ui.color13->setProperty("color", "rgb(255, 170, 255)");ui.color14->setProperty("color", "rgb(157, 127, 157)");ui.color15->setProperty("color", "rgb(255, 85, 0)");ui.color16->setProperty("color", "rgb(85, 170, 127)");connect(ui.color1, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color2, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color3, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color4, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color5, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color6, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color7, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color8, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color9, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color10, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color11, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color12, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color13, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color14, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color15, &QPushButton::clicked, this, &QColorPicker::onColorClicked);connect(ui.color16, &QPushButton::clicked, this, &QColorPicker::onColorClicked);QButtonGroup* btnGroup = new QButtonGroup(this);ui.minBtn->setChecked(true);btnGroup->addButton(ui.minBtn);btnGroup->addButton(ui.midBtn);btnGroup->addButton(ui.largeBtn);connect(ui.minBtn, &QPushButton::clicked, this, &QColorPicker::onThicknessClicked);connect(ui.midBtn, &QPushButton::clicked, this, &QColorPicker::onThicknessClicked);connect(ui.largeBtn, &QPushButton::clicked, this, &QColorPicker::onThicknessClicked);
}void QColorPicker::onColorClicked()
{QString btnColor = sender()->property("color").toString();m_curColor = btnColor;ui.color->setStyleSheet(QString("QPushButton{border:none;background-color: %1;}").arg(btnColor));
}void QColorPicker::onThicknessClicked()
{QString btnName = sender()->objectName();if (btnName == "minBtn"){m_thickness = 1;}else if (btnName == "midBtn"){m_thickness = 4;}else if (btnName == "largeBtn"){m_thickness = 8;}
}QColor QColorPicker::drawColor()
{return QColor(ColorMap::colormap.value(m_curColor));
}int QColorPicker::thickNess()
{return m_thickness;
}void QColorPicker::paintEvent(QPaintEvent *event)
{__super::paintEvent(event);QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
后期规划
Qt模仿QQ聊天窗口界面(四)
1.增加聊天窗口气泡消息功能
结尾
觉得博主写了这么多项目中,不错,还可以的。打赏下博主吧。博主写了这么久代码,脑细胞死了不少。得喝喝六个核桃补补,不断为大家开源更多精彩内容,谢谢大家支持~
Qt模仿QQ聊天窗口界面(三)相关推荐
- Qt模仿QQ聊天窗口界面(二)
Qt模仿QQ聊天窗口界面(二) Qt模仿QQ聊天窗口界面(二) 简述 修改 效果图 后期规划 代码 结尾 简述 在上篇我们已经搭好了QQ聊天窗口的框架,这里在原来的基础上叠加功能,以及优化一些控件. ...
- Qt模仿QQ聊天窗口界面(一)
Qt模仿QQ聊天窗口界面(一) Qt模仿QQ聊天窗口界面(一) 简述 效果图 QQ的聊天窗口 我做的效果图 代码篇 结尾 简述 最近利用业余时间,模仿QQ做了一个聊天窗口界面,功能还不全,准备分几个部 ...
- Qt模仿QQ聊天窗口(四)
Qt模仿QQ聊天窗口-气泡聊天消息 Qt模仿QQ聊天窗口-气泡聊天消息 简述 效果图 相关博客 代码 结尾 简述 最近感冒了,头疼,头疼,头疼.好了,进入正题吧,基本的气泡消息展示做好了,支持图文混排 ...
- Qt模仿QQ登录界面(一)
这两天研究qt,练习时做了个仿QQ登录界面,我这次实现的比较简单,先在这里记录一下,以后有空了会继续完善的. (一)效果图 这里使用我的qq号测试的如图: (二)工程文件 (三)代码实现 mainwi ...
- Qt模仿QQ聊天窗口合并功能
模拟qq打开聊天窗口,打开多个聊天窗口时,窗口合并 效果图如下: 实现机制 聊天窗口放在QStackedWidget里管理,聊天条目放在QLIstWidget管理,通过QListWidget的item ...
- Qt 之 模仿 QQ登陆界面——功能篇(一)
一.简述 今天是2017年第一篇技术文章,12月末事情太多,一直没来得及更新博客.今天继 Qt 之 模仿 QQ登陆界面--样式篇 这一篇 来简单地看一下对登录界面做的一些功能,主要是登录用户下拉列表和 ...
- pyqt5登录界面设计——模仿qq登录界面,可登录注册(数据库)
pyqt5登录界面设计--模仿qq登录界面 一.简单易用的可直接登录的界面--账号密码程序写死 1.1.效果图: 1.2.视频效果图 3.代码说明 4.使用示例 5.全部源码见: 二.带数据库的可登录 ...
- Qt 之 模仿 QQ登陆界面——旋转窗口篇
#一.简述 今天是新的一年第一篇博客,有大半个月没有更新博客了.我想是时候,打开电脑.拿起键盘.开始在我的代码之路上披荆斩棘,斩杀恶龙. 今天就继续来分享QQ登录界面的那些事.QQ登录界面的标题栏有一 ...
- java代码完全手写模仿qq登录界面
这是我模仿QQ2015版界面,实现的基本功能有登陆验证,重置等,当然直接复制代码运行是不一样的,还要注意自己插入自己的图片. 结果截图如下所示: import java.awt.BorderLayou ...
最新文章
- abb变频器电机过热保护怎么复位_变频器驱动的电机过热该怎么办
- Boost Part III. 函数对象与高级编程 Library 10. Lambda 用法
- java文件名特殊字符_Java 8:用名字读取特殊字符的文件
- Prime Count 求大区间素数个数
- 这些年Android面试的那些套路,社招面试心得
- Android input keyevent
- 用户名错误则一直登录
- C++_homework_StackSort
- js 对象数组追加元素
- CentOS 7 yum安装Tomcat7-jenkins
- Moodle中的session用法
- 帝国cms模板 php代码 效率,帝国cms模板开发常用技巧总结
- 傅里叶级数与傅里叶变换_Part4_傅里叶级数的复数形式
- 团队管理14--盘点团队
- 马云有自己的银行,为什么还要贷款?
- 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
- .Net Core 简单的Hangfire部署Demo
- [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统
- 大数据相关职位的知识储备与系统学习路线规划以及所需时间
- 网站识别Windows AD 域账号,并自动登录