• 6047阅读
  • 7回复

[提问]Qt设置开机启动后,无图标 [复制链接]

上一主题 下一主题
离线luckyyoung
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-03
我的桌面程序需要设置开机启动。
根据文章http://blog.csdn.net/xiexiaopingroma/article/details/5791426,我的程序能够开机启动了。
可是奇怪的是启动后不管是托盘的图标还是程序中QToolButton中的图标都没有显示。开机后,手动启动就很正常。
我的图标都是*.ico格式的。文中说的“可以利用资源文件里面的图标”,我不太懂。
我程序中的图标本来就放到*.qrc文件里了。
请求各位大神帮助!
Anything is possible!
离线roywillow

只看该作者 1楼 发表于: 2013-07-03
回 楼主(luckyyoung) 的帖子
开机自动启动的程序我记得工作目录跟双击直接打开是不同的,我觉得这个可能是一个很重要的原因
首先先检查一下你引用的图标是不是真的是qrc中的,你是不是只是把文件添加到了qrc中,但实际的引用还是实际文件夹中的?
另外如果你用了ico作为图标,那么先确定你的程序发布的时候带上了ico的图像插件
那句你不懂的话的意思就是,Qt既可以使用实际磁盘的独立文件,也可以使用qrc资源中的文件
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luckyyoung

只看该作者 2楼 发表于: 2013-07-03
回 1楼(roywillow) 的帖子
好,谢谢!我再看看^_^
Anything is possible!
离线luckyyoung

只看该作者 3楼 发表于: 2013-07-03
回 2楼(luckyyoung) 的帖子
问题解决啦^_^谢谢呀。果然是开机自启动时程序的工作目录与双击时不同造成的。我程序中加载ico图片的插件时,用的是插件的相对路径,结果插件就找不到,就没图片了。改成qApp->addLibraryPath(QApplication::applicationDirPath()+"/plugins");就行了。

还有个问题请教roywillow。。。我对托盘图标点击鼠标右键时,有菜单(context)出现,可是当我在桌面空白的地方单击鼠标时,这个菜单总是在那里,不会像其他程序那样自动关闭。这个有办法吗?
Anything is possible!
离线roywillow

只看该作者 4楼 发表于: 2013-07-04
回 3楼(luckyyoung) 的帖子
qt的插件只要放对了位置,应该自己也能搜索到的吧
你的程序的目录结构是什么样的?
那个菜单我还真没怎么用过……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luckyyoung

只看该作者 5楼 发表于: 2013-07-04
回 4楼(roywillow) 的帖子
我是把插件放在了程序所在目录下的plugins文件夹中。所以在我在main()中加了一句qApp->addLibraryPath(QApplication::applicationDirPath()+"/plugins");
原来我写的是qApp->addLibraryPath("plugins");,重启时就不会加载插件了。双击打开时没问题。
谢谢你提供的经验呀^_^这个重启后无图标的问题已解决。

其他程序的托盘图标,点击时会弹出菜单。然后在桌面空白处点击后,它会自动关闭。可是这个Qt的菜单,好像是用的Qt::popup类型的窗口,右键点击托盘图标,菜单可以弹出。但是在桌面空白处点击后,它不会自动关闭。非得触发其中的一个QAction,它才会关闭。我现在在里面放了一个没有connect的QAction。点击这个QAction时菜单能关闭,就是感觉上不太舒服。
Anything is possible!
离线roywillow

只看该作者 6楼 发表于: 2013-07-04
回 5楼(luckyyoung) 的帖子
我觉得你用png图标可能更好一些,这样ico插件就完全用不到了,qt内部原生支持png
另外你用的是qt4?如果插件问题导致ico显示不了,那么qt5下估计也会因为找不到平台插件而崩溃吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luckyyoung

只看该作者 7楼 发表于: 2013-07-05
回 6楼(roywillow) 的帖子
嗯,我用的Qt4.7.2,。学到了,以后直接用png好了,开始时自己认为ico可能更合适做图标文件一些。早知道就直接用png了。
还没用Qt 5,呵呵,懒得下载了。觉得Qt4还没学好。
目前软件给别人用还挺稳定了,从Windows Me到XP都没问题。解决了实际问题,谢谢你的帮助呀^_^
Anything is possible!
快速回复
限100 字节
 
上一个 下一个