找回密码
 立即注册
收起左侧

如何用qt实现托盘弹窗且点击弹窗后用系统浏览器访问页面?

13
回复
14881
查看
[复制链接]
累计签到:21 天
连续签到:1 天
来源: 2013-10-5 22:01:44 显示全部楼层 |阅读模式
1Qter豆
如题,想用qt做个右下角托盘弹窗,类似qq托盘弹窗。
刚刚接触qt,看不懂程序,但隐约感觉qt应该能实现托盘弹窗的功能。
其中有几个关键功能点,希望高手指教。
1,怎样从指定网页获得图片及图片对应的网页链接。即,将图片显示到弹窗,点击弹窗用系统默认浏览器打开对应的网址。
比如:定位到网页上一句:<a href = "url"><img>xxxx.jpg</img></a>
将xxxx.jpg显示到弹窗,点击图片或弹窗用系统默认浏览器访问url.
2, 图片如何按照弹窗尺寸缩放并铺满弹窗。
3, 怎么调用默认浏览器访问url。
自己试了半天,连个文字链接都加不到qt界面里,请各位不吝赐教。{:soso__1546123273885718502_4:}
我的环境win7 qt481 qtcreator241

最佳答案

查看完整内容

1. 实现托盘请用QSystemTrayIcon(Qt4)或 QPlatformSystemTrayIcon(Qt5); 2. 在webview控件里面嵌入js脚本来获取图片地址和跳转用的网址; 3. 如何缩放只是图片控件的某个属性而已; 4. 用QDesktopServices可直接用系统默认浏览器打开指定地址;
回复

使用道具 举报

尚未签到

2013-10-5 22:01:45 显示全部楼层
1. 实现托盘请用QSystemTrayIcon(Qt4)或 QPlatformSystemTrayIcon(Qt5);
2. 在webview控件里面嵌入js脚本来获取图片地址和跳转用的网址;
3. 如何缩放只是图片控件的某个属性而已;
4. 用QDesktopServices可直接用系统默认浏览器打开指定地址;
参与人数 1人气 +1 收起 理由
xgqter + 1 对我帮助很大!

查看全部评分总评分 : 人气 +1

回复

使用道具 举报

累计签到:21 天
连续签到:1 天
2013-10-6 08:58:26 显示全部楼层
Joey_Chan 发表于 2013-10-6 00:57
1. 实现托盘请用QSystemTrayIcon(Qt4)或 QPlatformSystemTrayIcon(Qt5);
2. 在webview控件里面嵌入js ...

我这就试试。感谢。
webview里如何嵌入js脚本,能说的具体些吗,或者论坛教程哪章讲过webview嵌入js脚本?
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-6 09:26:46 显示全部楼层
打开连接的方法:

QLabel *label = new QLabel(this);
    label->setFrameStyle(QFrame::Box | QFrame::Sunken);
    label->setText(
          tr("<a href=\"http://www.yafeilinux.com\">yafeilinux.com</a>"));
    label->setTextFormat(Qt::RichText); // 标签文本为富文本
    label->setOpenExternalLinks(true);  // 可以打开外部链接


让图片缩放看:http://www.qter.org/forum.php?mod=viewthread&tid=115


托盘可以看Qt自带的System Tray Icon Example例子,以及QSystemTrayIcon的帮助。

至于获取图片,如果一个网站上有很多图片呢,或者说要获取哪个图片,这个要根据自己的需求来设计方案。

点评

我试了打开链接的代码,现象是鼠标移动到链接上变成手指状,但是点击无反应,不能打开链接。  发表于 2013-10-6 21:47
参与人数 1人气 +1 收起 理由
xgqter + 1 对我帮助很大!

查看全部评分总评分 : 人气 +1

回复

使用道具 举报

尚未签到

2013-10-6 10:39:57 显示全部楼层
xgqter 发表于 2013-10-6 08:58
我这就试试。感谢。
webview里如何嵌入js脚本,能说的具体些吗,或者论坛教程哪章讲过webview嵌入js脚本 ...

webpage对象里面有个函数叫evaluatejs,里面的参数就是js脚本,调用这个函数就可以在当前网页执行该脚本,如果js脚本写的好的话,函数就会直接返回你需要的图片和地址。
回复

使用道具 举报

累计签到:21 天
连续签到:1 天
2013-10-6 20:04:18 显示全部楼层
yafeilinux 发表于 2013-10-6 09:26
打开连接的方法:

QLabel *label = new QLabel(this);

假设网页上只有一张图片,如何获取这张图片和它对应的链接呢?
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-6 20:28:31 显示全部楼层
xgqter 发表于 2013-10-6 20:04
假设网页上只有一张图片,如何获取这张图片和它对应的链接呢?

如果可以获取html代码,直接查找里面的image标签即可。

如果网站服务器是自己维护的,可以使用post和get函数直接获取自己想要的内容。
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-7 08:57:44 显示全部楼层
我这里可以的啊,你看下是不是默认浏览器的问题。
回复

使用道具 举报

累计签到:21 天
连续签到:1 天
2013-10-7 16:33:47 显示全部楼层
yafeilinux 发表于 2013-10-7 08:57
我这里可以的啊,你看下是不是默认浏览器的问题。

我的默认浏览器ie8. 编译运行后点击没反应,请问怎么看是不是默认浏览器的问题,qt里面是不是哪里能设置?我现在尝试用joey提到的QDesktopServices,不知道咋用,正在看帮助文档,yafei老师方便给个QDesktopServices的示例代码吗?
回复

使用道具 举报

累计签到:21 天
连续签到:1 天
2013-10-7 17:10:23 显示全部楼层
yafeilinux 发表于 2013-10-7 08:57
我这里可以的啊,你看下是不是默认浏览器的问题。

yafei老师,你的示例代码是在什么工程下面写的,我在对话,组件,主窗口三种类型的qtgui下面试那段代码都不行,求解。
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-8 09:22:22 显示全部楼层
xgqter 发表于 2013-10-7 16:33
我的默认浏览器ie8. 编译运行后点击没反应,请问怎么看是不是默认浏览器的问题,qt里面是不是哪里能设置 ...

QDesktopServices::openUrl(QUrl("http://www.qter.org"));
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-8 09:28:14 显示全部楼层
xgqter 发表于 2013-10-7 17:10
yafei老师,你的示例代码是在什么工程下面写的,我在对话,组件,主窗口三种类型的qtgui下面试那段代码都 ...

哪都行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:21 天
连续签到:1 天
2013-10-8 09:28:51 显示全部楼层
yafeilinux 发表于 2013-10-8 09:22
QDesktopServices:penUrl(QUrl("http://www.qter.org"));

3q3q,回家我就试试。请问yafei老师用的什么qt环境,这句直接写在main.cpp可否执行呢?
回复

使用道具 举报

累计签到:1569 天
连续签到:1 天
2013-10-8 09:41:41 显示全部楼层
xgqter 发表于 2013-10-8 09:28
3q3q,回家我就试试。请问yafei老师用的什么qt环境,这句直接写在main.cpp可否执行呢? ...

应该可以,我这里
winxp + Qt 4.8
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了