当前位置: 首页 > news >正文

线上销售水果营销方案阿里巴巴怎么优化关键词排名

线上销售水果营销方案,阿里巴巴怎么优化关键词排名,长春做网站的公司有哪些,成都科技网站建设电话咨询1.原理 要想实现开机自启动,首先,QT是没有这种实现的,最好是靠电脑开机的启动目录启动软件,下面这个目录 /etc/xdg/autostart 这是操作系统中用于配置启动项的目录,该目录下存放着开机自启动的启动器(.desktop)文件…

1.原理

要想实现开机自启动,首先,QT是没有这种实现的,最好是靠电脑开机的启动目录启动软件,下面这个目录

/etc/xdg/autostart

这是操作系统中用于配置启动项的目录,该目录下存放着开机自启动的启动器(.desktop)文件,要想软件开机自启动,大都是通过配置一个启动器文件来实现,可以看一下这个目录

里面存放着很多开机要启动的配置

所以我们写的QT 程序要想实现自启动,为这个程序写一个启动器(.desktop)文件放在这个目录下即可

2.实现

那么怎么实现呢?

其实不难,就几行代码,如下所示

[Desktop Entry]
Exec=/home/yicaobao/qtProjects/SelfStartDemo/bin/bin/SelfStartDemo
Icon=/home/yicaobao/qtProjects/SelfStartDemo/bin/resource/start-logo.png
Name=SelfStartDemo
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom

简单介绍一下主要的:

1.Exec:要运行的东西(程序,脚本等)路径

2.Name:desktop文件的名字,在/etc/xdg/autostart目录下显示的启动器名字

3.Type: 用于指定 desktop 文件的类型(包括 3 种类型:Application、Link、Directory)。

4.Icon: desktop 文件没有图标

        Icon: 指定应用程序图标的完整路径(可以省略后缀名)。

        图标支持 png 格式、svg 格式等,图标的推荐尺寸为 128x128。

因此一个基本的 desktop 文件模板应该像下面这样:

[Desktop Entry]

Name=<应用程序名>

Type=Application

Exec=<应用程序完整路径>

Icon=<应用程序图标的完整路径>

我从这里引用过来的:https://www.ywnz.com/linuxjc/3603.html,要了解跟多可以去看一下

所以我们只要写一个启动器,丢到启动目录就行了

其实也不算麻烦,但是并不是很方便,但是想要智能一点,在程序里写一个可选项,勾选就可以实现开机自启动或者取消开机自启动就更好了,像这样

3.QT代码实现

思路如下,先写一个启动器,然后在写开机自启动和取消开机自启动脚本程序,脚本程序将启动器拷贝到linux启动目录就可以了

所以QT里就用到了,文件写入,执行脚本的模块

解释一下核心代码:

1.获取当前程序的名字,因为启动需要

AppName = QCoreApplication::applicationName();

2.启动脚本目录

    QDir dir(QCoreApplication::applicationDirPath());dir.cdUp();startFileDir =  dir.path();

3.生成启动器的代码

void Widget::generateStartFile(QString fileName)
{QString filePath =  startFileDir + "/" + fileName;QFile File(filePath);if(File.exists()) {//return;}QString startFilePath;QStringList list;list << "[Desktop Entry]"<< QString("Exec=%1/bin/%2").arg(startFileDir).arg(AppName)<< QString("Icon=%1/resource/start-logo.png").arg(startFileDir)<< QString("Name=%1").arg(AppName)<< "Terminal=false"<< "Type=Application"<< "X-Deepin-Vendor=user-custom";//写入到文件中writeStartFile(filePath, list);
}

4.生成拷贝启动器文件到linux下启动目录的shell脚本

void Widget::copyToAutostartShell(QString desktopName)
{QStringList arguments;arguments << "#!/bin/sh"<< QString("#设置开机自动启动")<< QString("echo \"%1\" | sudo -S cp %2 /etc/xdg/autostart").arg(userPwd).arg(startFileDir+'/'+desktopName)<< QString("notify-send \"程序已设置开机自启动\"");//写入到文件中writeStartFile(startFileDir+"/AotuStart.sh", arguments);
}

5.生成移除启动器文件的脚本,也就是取消开机启动

void Widget::removeAutostartFile(QString desktopName)
{QStringList arguments;arguments << "#!/bin/sh"<< QString("echo \"%1\" | sudo -S rm /etc/xdg/autostart/%2").arg(userPwd).arg(desktopName)<< QString("notify-send \"程序开机自启动已取消\"");writeStartFile(startFileDir+"/unAotuStart.sh", arguments);
}

6.执行脚本的代码

void Widget::executeLinuxCmd(QString path, QString fileName)
{QProcess *backupProcess = new QProcess;backupProcess->setWorkingDirectory(path);backupProcess->start("/bin/sh",QStringList()<<fileName);bool isfinished = backupProcess->waitForFinished();QString strResult = backupProcess->readAllStandardOutput();QString strErrResult = backupProcess->readAllStandardError();//QStringList strList = strResult.split("\n");if(!strErrResult.isEmpty()) {QMessageBox::information(this, "提示", strResult);}else {QMessageBox::information(this, "提示", strResult);}if(isfinished){backupProcess->close();delete backupProcess;backupProcess = nullptr;}
}

点击选中开机自启动或者取消开机自启动的代码

void Widget::on_selfStart_stateChanged(int state)
{Q_UNUSED(state)UserPwdDialog dialog(this);if (QDialog::Accepted != dialog.exec())return;userPwd = dialog.getPWD();if(ui->selfStart->isChecked()) {generateStartFile(QString("%1.desktop").arg(AppName));copyToAutostartShell(QString("%1.desktop").arg(AppName));executeLinuxCmd(startFileDir, "AotuStart.sh");}else {removeAutostartFile(QString("%1.desktop").arg(AppName));executeLinuxCmd(startFileDir, "unAotuStart.sh");}
}

4. 效果

设置开机自启动后效果如下,重启电脑就会发现程序会开机启动了

设置取消开机自启动后效果如下,把启动器文件删除了,就不会开机启动了

我只是举一个简单的例子,可以根据这个例子,理解了,做成一个接口,到时,就可以给想要做开机自启动的程序用了

我给一下这个例子的源代码:

链接: https://pan.baidu.com/s/1Yn_N87IKgjKUerVhb5GtUQ 提取码: 8888 

linux下的QT程序开机自启动,用代码实现智能化开启或取消,找了很久在网上都没有找到一个,૮₍ ◞‸◟₎ა ,后面就自己找了个时间了解这个原理后,弄了一个例子出来,对你有帮助的,记得点个赞,让我看看是不是有很多人想要这种功能性的代码

或者你们有什么更好的方案或者其他问题的,评论取留言探讨一下੭ ᐕ)੭

http://www.bjxfkj.com.cn/article/105051.html

相关文章:

  • 做一家影视网站赚钱吗免费个人网站空间
  • fedora做网站服务器搜索引擎优化的主要策略
  • 律师网站建设推广外贸网站建设公司
  • 西安网站建设个人营销页面设计
  • 学勇建站企业关键词推广
  • b站up主怎么接推广国内十大搜索引擎
  • 手机网站空间seo招聘信息
  • vs2010怎么做网站网络营销运营
  • 厦门网站设计个人百度400电话
  • 网站制作怎么做下拉菜单鸡西网站seo
  • wordpress手赚推广西安网站建设推广优化
  • 安徽做网站公司杭州网站优化流程
  • 移动网站设计与制作计算机培训课程
  • 哪个网站是专门做男人衣服的人民网 疫情
  • 烟台seo网站排名优化semiconductor
  • 门户网站建设合同广州网站优化排名
  • 哪些网站论坛做推广好佛山网站建设维护
  • 网站建设税金会计分录百度账号人工客服
  • html5网站演示网站关键词怎么添加
  • 电子商务网站建设的过程和步骤谷歌google搜索引擎入口
  • 网站用nodejs做后台自动点击器下载
  • 手机网站自动跳转怎么解决北京seo专员
  • 网站小程序怎么做百度平台投诉人工电话
  • wordpress dz 整合seo引擎搜索网站关键词
  • 网站开发论文的分类号营销管理培训课程
  • 网站设计应该怎么做今日头条收录入口
  • 有b开通的建行网站创建网页
  • 脉脉用的什么技术做网站长春网站优化流程
  • 蔚县做网站专业搜索引擎seo合作
  • 工程施工行业在哪个网站容易找事做今天国际新闻最新消息10条