环境:Linux(Ubuntu/Debian)(方德)
QT:5.6.2
一、原理及简单操作
原理:
在 /etc/xdg/autostart 目录下存放着开机自启动的启动器(.desktop)文件,我们可以为自己程序写一个.desktop文件,然后放到这里来,实现开机自启动。
2020年9月18日更新:在当前用户目录下,即$HOME下,路径为$HOME/.config/autostart下放置.desktop文件可以起到为当前用户创建一个开机启动文件
具体实现方法:
1.准备好自己的应用程序,这里我的程序路径为/home/fan/FanTest/FanTestAPP。也可以再准备一个程序图标文件,,最好是64x64的,这里我的程序图标路径为/home/fan/FanTest/FanTest.png。以下命令均在此文件夹下使用。
2.在程序所在的文件夹下创建一个FanTest.desktop的文件,名称可以自己起,后缀为.desktop,我使用的命令是:
touch FanTest.desktop
或者你可以使用其他的方式创建,比如 vim FanTest.desktop。
3.编辑这个文件,添加以下内容,注意把注释删除,末尾不要留空格:
[Desktop Entry] //必须
Version=1.0.0 //版本,可选
Name=FanTest //程序名,必须
Name[zh_CN]=帆 //中文程序名,可选
Exec=/home/fan/FanTest/FanTestAPP //可执行程序路径,必须。路径必须是绝对路径
Icon=/home/fan/FanTest/FanTest.png //程序图标,可选。路径必须是绝对路径,末尾不能有空格,否则将会导致无法加载图标
Type=Application //类型为应用程序,必选
编辑后保存,在终端中输入以下命令为其添加可执行权限,这样就可以双击打开了,也可以复制到桌面作为快捷方式:
chmod 755 FanTest.desktop
4.使用命令将FanTest.desktop复制到/etc/xdg/autostart下,需要root权限:
sudo cp FanTest.desktop /etc/xdg/autostart/
这时重启一下就可以发现程序能够自启动了。
5.如果想要取消自启动,删除/etc/xdg/autostart/下的FanTest.desktop文件即可:
sudo rm -f /etc/xdg/autostart/FanTest.desktop
二、用QT实现勾选复选框改变是否自启动的功能
这个程序实现了通过勾选复选框改变是否自启动的功能,原理为上述原理,非常简单,有简单注释。
我的基类是widget,如果需要别的请自行更改。
ui就不贴了,只有一个复选框,对象名是默认的checkBox。
参考资料:
[1]ubuntu开机自动运行用Qt写的程序
https://blog.csdn.net/zilanpotou182/article/details/71173361
[2]Qt 判断文件是否存在
https://www.cnblogs.com/cszlg/p/3234823.html
[3]linux如何实现开机加载完图形界面后自动运行自己写的一个程序
https://blog.csdn.net/jianglei_love/article/details/51559229