qt5 做的一个类似qq的界面
代码已上传到github
,地址:/。
1、实现日志:
- 两种按钮,自定义关闭窗口按钮,屏蔽标题栏导致无法拖拽窗体,eventFilter事件过滤器使用及按钮悬浮改变颜色,常用event事件列表。
- 控件的移动和放缩,lineedit只显示下边框,边框阴影,QLineEdit文本边距、密码格式、选中lineedit时的事件来切换图标。
- 主窗口边角变圆及去掉角落白色背景。只关闭窗口,不关闭整个进程。setWindowFlags设置窗口属性的一些操作。线程使用及信息的相互传递。
- 自己画的虚拟键盘,让弹出窗口始终出现在指定位置,获取某个控件相对整个屏幕的坐标,show()和exec()区别。
- 控件透明度,LineEdit灰色提示文字,设置按钮图标大小,设置label中文字字体、大小、粗细、颜色等,按钮实现图标在上文字在下显示,qss事件改变格式。
- setToolTip换行,定时器使用,类似QQ的设置悬浮窗口实现,pushbutton上的文字或图标左右移动。
- 在窗口外区域点击时隐藏窗口,实现切换qq登录状态。鼠标悬停显示悬浮窗口,离开区域过一段时间后消失 + 鼠标停留在悬窗时就不消失,以此实现qq天气的悬浮窗口。
- pushbutton文字增加下划线,broder-radius圆角四个角和弯折程度,修改checkbox复选框中的小方框。
- 实现三连弹出窗口。
- qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表。
- QTreeWidget使用添加项目,及其他相关操作。
- setContentsMargins()作用,设计布局实现的QQ消息列表,自建控件来实现动态添加,使用数组来控制自建控件。
- qt 给容器中的控件添加信号槽。
- 界面类之间传参,实例化界面类时就传递参数的方法,点击调起动态页面。
- Label的对齐方式等一些属性,QLabel自适应文字大小,QLabel播放gif,动态的QQ消息气泡框。
说明:
主要学习的是界面,所以没有什么实际功能。很多细节部分尽量的做的一致了。登陆页面能最小化,主界面忘了弄了。登陆界面不需要用户名密码,直接点登录就能跳转到主界面了。由于消息栏是用按钮做的,所以打开聊天对话只要单击即可。里面有一些多余的代码,是我学习其他模块用这个程序实验用的,不用在意。没有什么技术含量,对于初学者来说可以拿来看看。
2、界面演示:
(1)登录页面:
(2)消息框页面:
(3)联系人:
(4)空间:
(5)弹出框:
(6)改变状态:
(7)聊天窗口:
qt5 做的一个类似qq的界面
代码已上传到github
,地址:/。
1、实现日志:
- 两种按钮,自定义关闭窗口按钮,屏蔽标题栏导致无法拖拽窗体,eventFilter事件过滤器使用及按钮悬浮改变颜色,常用event事件列表。
- 控件的移动和放缩,lineedit只显示下边框,边框阴影,QLineEdit文本边距、密码格式、选中lineedit时的事件来切换图标。
- 主窗口边角变圆及去掉角落白色背景。只关闭窗口,不关闭整个进程。setWindowFlags设置窗口属性的一些操作。线程使用及信息的相互传递。
- 自己画的虚拟键盘,让弹出窗口始终出现在指定位置,获取某个控件相对整个屏幕的坐标,show()和exec()区别。
- 控件透明度,LineEdit灰色提示文字,设置按钮图标大小,设置label中文字字体、大小、粗细、颜色等,按钮实现图标在上文字在下显示,qss事件改变格式。
- setToolTip换行,定时器使用,类似QQ的设置悬浮窗口实现,pushbutton上的文字或图标左右移动。
- 在窗口外区域点击时隐藏窗口,实现切换qq登录状态。鼠标悬停显示悬浮窗口,离开区域过一段时间后消失 + 鼠标停留在悬窗时就不消失,以此实现qq天气的悬浮窗口。
- pushbutton文字增加下划线,broder-radius圆角四个角和弯折程度,修改checkbox复选框中的小方框。
- 实现三连弹出窗口。
- qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表。
- QTreeWidget使用添加项目,及其他相关操作。
- setContentsMargins()作用,设计布局实现的QQ消息列表,自建控件来实现动态添加,使用数组来控制自建控件。
- qt 给容器中的控件添加信号槽。
- 界面类之间传参,实例化界面类时就传递参数的方法,点击调起动态页面。
- Label的对齐方式等一些属性,QLabel自适应文字大小,QLabel播放gif,动态的QQ消息气泡框。
说明:
主要学习的是界面,所以没有什么实际功能。很多细节部分尽量的做的一致了。登陆页面能最小化,主界面忘了弄了。登陆界面不需要用户名密码,直接点登录就能跳转到主界面了。由于消息栏是用按钮做的,所以打开聊天对话只要单击即可。里面有一些多余的代码,是我学习其他模块用这个程序实验用的,不用在意。没有什么技术含量,对于初学者来说可以拿来看看。
2、界面演示:
(1)登录页面:
(2)消息框页面:
(3)联系人:
(4)空间:
(5)弹出框:
(6)改变状态: