最近项目中需要实现一个消息推送的功能,模仿QQ消息弹窗的方式实现,界面开发的工具为Qt。对桌面应用开发这块不太熟悉,通过摸索尝试也算是把这个功能实现了,其中也碰到了一些比较麻烦的问题,这些问题我看也具有一定的普遍性,就把我摸索出来的解决方法和大家分享下(可能有更好的方法我没想到)!
Qt虽说支持CSS2的所有样式效果,但真正实现起来可并不如html那般简单。这个消息弹窗中的文字链接以及点击效果的设置就把我折腾了好久。需要设计的效果是:
1、标题、内容以及图片均具有点击的效果;
2、鼠标放置在标题和内容上,文字变色并且高亮显示,无需下划线;
3、鼠标的形状:在放置在标题和内容上时由箭头变成小手指。
整个窗体采用QWidget类型,标题、内容、图片采用QLabel类型。当我实现文本点击时,发现QLabel没有像button那样的clicked信号,网上推荐了如下两种方法:
1、在标题中嵌入html标签:
QString title = "<a href=' " + url + " '>" + content + " </a>
ui.Title->setText(title)
setOpenExternalLinks(true) // 允许打开外部链接,这个可在ui文件中通过可视化工具设置(我用的是VS插件Qt设计师)
但这种方式存在两个个问题:1)无法支持鼠标hover效果;2&#