精华内容
下载资源
问答
  • Qt QProcess执行Linux 命令行的方法

    千次阅读 2020-02-08 17:45:35
    1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下 m_proces_bash = new QProcess; m_proces_bash->start("bash"); m_proces_bash->waitForStarted(); connect(m_proces_bash,SIGNAL...

    1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下

    m_proces_bash = new QProcess;
    m_proces_bash->start("bash");
    m_proces_bash->waitForStarted();
    connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),this,SLOT(readBashStandardOutputInfo()));
    connect(m_proces_bash,SIGNAL(readyReadStandardError()),this,SLOT(readBashStandardErrorInfo()));

    2、向终端发送命令

    void MainWindow::on_pushButton_bashrun_clicked()
    {
        QString strCmd = ui->lineEdit_bashcmd->text();
        ui->textEdit_bashmsg->append("Linux:~$ "+strCmd);
        m_proces_bash->write(ui->lineEdit_bashcmd->text().toLocal8Bit() + '\n');
        ui->lineEdit_bashcmd->clear();
    }

    3、接收终端返回

    void MainWindow::readBashStandardOutputInfo()
    {
        QByteArray cmdout = m_proces_bash->readAllStandardOutput();
        if(!cmdout.isEmpty()){
            ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));
        }
        QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();
        scroll->setSliderPosition(scroll->maximum());
    }
    void MainWindow::readBashStandardErrorInfo()
    {
        QByteArray cmdout = m_proces_bash->readAllStandardError();
        if(!cmdout.isEmpty()){
            ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));
        }
        QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();
        scroll->setSliderPosition(scroll->maximum());
    }

    4、当命令需要超级权限时,sudo xx 需要修改为sudo -S xx

    例如:(1)ls 执行正常

    (2)sudo ls 执行失败

    (3)执行sudo -S ls 执行成功

     

     

    展开全文
  • linux系统QT环境下使用命令行执行命令,读取信息。 问题:linux系统很多操作需要用到命令行,输入命令和观察反馈来判断系统状态。那么使用QT能否自动完成这个功能呢? 需求:使用“lspci”查看PCIE设备。如果有...

    linux系统QT环境下使用命令行,执行命令,读取信息。

    问题:linux系统很多操作需要用到命令行,输入命令和观察反馈来判断系统状态。那么使用QT能否自动完成这个功能呢?
    需求:使用“lspci”查看PCIE设备。如果有设备就返回设备号。如果没有,就没有返回。

    //头文件
    #include <QApplication>
    #include <QProcess>
    //如果不需要返回,只执行命令
    QProcess::execute(QString("lspci"));
    //源文件
    process.start("lspci");//输入命令
    process.waitForFinished();//执行命令
    QByteArray output = process.readAllStandardOutput();//读取返回
    
    //判断读取信息
    if((QString::compare(output,"01:00.0 Ethernet controller: Device 8088:0107 (rev 01)")) == 0)
    {
       qWarning()<<"找到PCIE设备";
       qWarning()<<output;//打印出读取的信息
    }
    else
    {
       QProcess::execute(QString("reboot"));//如果读不到设备,就重启。
    }	
    
    展开全文
  • 如果不存在pro文件执行下面命令生成pro文件。 qmake -project (2)生成makefile (2.1)修改pro文件,将其中的 TARGET = 程序名字 改成  CONFIG+=debug_and_release CONFIG(debug, debug|release){ ...

    (1)如果存在pro文件,进行第二步。如果不存在pro文件执行下面命令生成pro文件。

    qmake -project

    (2)生成makefile

    (2.1)修改pro文件,将其中的

    TARGET = 程序名字

    改成 

    CONFIG+=debug_and_release
    CONFIG(debug, debug|release){
        TARGET = 程序名字
    } else {
        TARGET = 程序名字
    }

    然后执行

    qmake XXX.pro

    会得到多个makefile以及对应的debug,release文件夹,如图:

    最后执行下面任一个得到对应的版本的应用程序:

    debug版本:     make debug 
    
    release版本:    make release 
    
    全部版本:      make all

    (2.2)如果不对pro进行修改,还是保持原来的“TARGET = 程序名字”,直接运行

    qmake XXX.pro

    只有有一个makefile文件,然后执行make得出来的版本默认是release版本。

    【补充备注】如何判断自己生成的应用程序是release还是debug版本呢?有两种方式:

    A:查看生成的makefile文件中是否有“DQT_NO_DEBUG”,如果有则为release版本

    B:先用ide-qtcreator分别以release以及debug方式编译运行程序,会发现得到的release版本的大小比debug版本要小很多,查看使用qmake命令行得到的应用程序是不是跟ide方式得到的应用程序的大小是一样的。

    参考文章:

    https://blog.csdn.net/zzwdkxx/article/details/51385358

    展开全文
  • 今天在Linux下开发Qt界面程序时发现一个奇怪的问题,程序执行如下命令却会打印日志和弹出对话框 ./test -name xxx 代码如下: #include <QApplication> #include <QMessageBox> #include <...

    今天在Linux下开发Qt界面程序时发现一个奇怪的问题,程序执行如下命令却会打印日志和弹出对话框

    ./test -name xxx

    代码如下:

    #include <QApplication>
    #include <QMessageBox>
    #include <QDebug>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        if(argc != 3 || strcmp(argv[1], "-name") != 0)
        {
            qDebug() << "param not right!";
            QMessageBox::warning(NULL, "提示", QString("命令行格式:./test -name 姓名"));
            return -1;
        }
        ...
        return 0;
    }

    在Windows上是不会进入if判断的,但在Linux下却会进入到if判断内。通过添加打印信息:

        ...
        qDebug() << "1.argc=" << argc;
        QApplication a(argc, argv);
        qDebug() << "2.argc=" << argc;
        if(argc != 3 || strcmp(argv[1], "-name") != 0)
        ...
    

    Linux下输出结果是:

    1.argc=3
    2.argc=1

    Windows下输出结果是:

    1.argc=3
    2.argc=3

    这是为啥?问题肯定出在QApplication构造函数里。通过在百度里搜索“Qt QApplication 默认参数 -name”发现一篇文章提到了如下内容:

    原来是X11的命令行默认处理了"-name"参数,在此记录一下在Linux下进行Qt (Qt 4,没有验证Qt5是否存在此问题)开发时,注意避免传入参数与X11命令行选项冲突或者在QApplication构造前对参数进行处理。

    展开全文
  • Linux Qt 5.x 环境搭建

    2016-11-25 00:26:00
    linux命令行中给予文件可执行权限 $ chmod u+x qt-opensource-linux...run $ ./qt-opensource-linux...run Step 2 指定qt安装目录,然后结束 为防止缺少qt所需的相关图形库,安装 $ sudo apt-g...
  • 新建一文件夹,将qt编译生成的release下的xxx(可执行文件)拷到该文件夹下。  2.进入此文件夹,打开命令行模式,进入root权限。运行命令linuxdeployqt xxx -appimage  3.我们可以看到生成许多文件,我们将...
  • 目的: 在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照 软件: xvfb(在命令行下实现对X-server的模拟,渲染图形进行缓存)-在没有安装X-Server的环境下提供...Qt(CutyCapt是基于此框架开发...
  • linux 发布qt程序

    千次阅读 2018-03-07 19:54:20
    将文件夹拷到没有装qt的机器上,进入文件夹,点击程序A,没有任何反应,因为缺少so库,命令行进入文件夹,执行ldd A会打印程序依赖库的情况,查找not found相关的库,去安装qt的机器上把相关库拷到与A同一目录下,我...
  • Linux下安装Qt5.4.1

    千次阅读 2018-08-17 13:33:41
    1、下载linux下的32位qt安装包 qt-opensource-linux-x86-5.4.1.run 下载地址:... 2、安装步骤  (1)、 在命令行里赋予可执行权限: chmod +x qt-opensource-linux-x86-5.4.1.run (2)、./ qt...
  • 1、QT切换到release模式,编译后在构建目录生成可执行文件,例如setup.exe,把该文件复制到一个单独文件夹; 2、在开始菜单找到QT,在里面找cmd命令行程序,类似“Qt 5.7 64-bit for Desktop (MSVC 2013)”,点击...
  • linuxQt程序编译运行

    2015-12-17 18:37:00
    Qt程序编译运行很简单,利用Qt提供的qmake工具可以很好的进行编译,在命令行输入一下编译过程:qmake-project//声称项目文件(*.pro)qmake//生成Makefile文件make//生成可执行文件./helloworld//执行程序 =========...
  • linuxmint 17安装qt5.3.1

    2014-07-27 07:55:00
    从官方网站上下载的安装包,双击安装即可。 新建项目编译时,出现错误:cannot find -lGL  解决的方法:安装libgl1-mesa-dev,当然...在文件夹/usr/lib/i386.../qt4/中寻找执行文件,其中是没有的,配置可通过修...
  • Qt4在linux下的安装

    千次阅读 2013-06-20 22:07:10
    ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.troll.no/QT/qtsdk/qt-sdk-linux-x86-opensource-2010.05.1.bin 2、修改文件权限 想要安装SDK,需要拥有对其读写和执行的权限。可以通过【右键】->【属性】->...
  • Qt4创建工程的几种方法:linux系统

    千次阅读 2013-06-21 16:43:31
    方法一:以Qt Creator 作为IDE 1、启动Qt Creator,并创建一个空项目 2、输入路径和工程名字 ...方法二:利用linux命令行 1、创建HelloWorld.cpp文件,并保存到HelloWorld文件夹下面 2、生成项目文
  • linux命令行执行 qmake -project时报错:qmake: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qmake': No such file or directory1原因:qtchooser默认选择路径中没有指向qmake路径,qtchooser默认路径在...
  • 原文: ... 经整理: 1.首先下载安装文件:qt-sdk-linux-x86-opensource-2010.05.1.bin 2.切换到安装文件所在目录,在命令行中输入执行命令:$ ./qt-sdk-linux-x86-op
  • qt-faststart.7z

    2020-02-16 01:40:15
    qt-faststart是FFmpeg下的一个小工具,可以将mp4视频文件的元数据提取...资源包内包含编译好的qt-faststart.exe以及linux执行文件qt-faststart 使用方法为命令行执行qt-faststart <infile.mov> <outfile.mov>
  • 下载Qt ...注:下载Qt 5.14.2文件夹下的 ....执行./qt-opensource-linux-x86-5.14.2.run命令进行安装,需要安装的组件全选 注: 默认会安装在 /home/用户名/ 下,安装完成之后即可在安装路径下看到Qt5.14.2文件夹。 ..
  • 准备环境: Linux Qt下载地址:http://download.qt.io/archive/qt/ ...打开命令行终端(快捷键ctrl+alt+t),chmod 777 qt-opensource-linux-x64-5.14.2.run,赋予执行权限 然后执行./qt-opensource-linux-x86-5.14.2.r
  • Qt入门(10)——调试技术

    千次阅读 2014-09-30 06:28:24
    命令行参数当你运行Qt程序时,你可以指定几个命令行参数来帮助你调试。-nograb 应用程序不再捕获鼠标或者键盘。当程序在Linux下运行在gdb调试器中时这个选项是默认的。-dograb 忽略任何隐含的或明显得-nograb。即使-...
  • ROS中Qt开发环境搭建

    2020-05-20 11:40:00
    ROS中Qt开发环境搭建 说明:本文安装的是Qt5.9.9版本,其他版本搭建开发环境的方法类似。 1.qt_creater安装 两种方式安装Qt,第一种...安装包添加可执行权限(命令行):chmod a+x qt-opensource-linux-x64-5.9.9.run
  • QT5.8 ubuntu安装

    2019-01-27 19:33:44
    1、首先从Qt官网上下载Qt5.8的安装包。 下载网址:http://download.qt.io/archive/qt/ 2、安装 cd到qt-opensource-linux-x64-5.8.0.run所在...如果遇到无法执行.run文件的情况,可以修改文件的权限,在命令行输入: ...
  • This application failed to start because it could not find or load the Qt platform plugin "xcb".Reinstalling the application may fix this problem.这里问题折腾了好久!这里的xcb指的是libqxcb....
  • [这是用命令行执行一个简单的QT程序显示的错误信息](https://img-ask.csdn.net/upload/201608/08/1470586891_88103.jpg) ![这里用命令查看是安装成功Qt的了]...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

linuxqt执行命令行

linux 订阅