因为任务原因再一次的接触QT,看着之前发过的有关QT的demo,很是感慨之前的挥斥方遒,然而还是得面对现实,对于忘得一干二净的我来说,有点对不起帆哥哈哈,经过舒神的指导,今天的学习多少有点突破,简单记录一下。
QT版本:5.9.0
VS版本:2013
配置
对于安装问题,请移步至这个老哥的安装教程,很详细,但是安装QT的时候组件安装有点问题,需要结合我在QT安装那篇博客的回答看。
使用
因为我是需要做QT的软件页面,所以选择新建的是这个:
在这里插入图片描述
新建好之后会在资源管理里面生成以下各类文件:
分别是,可以双击打开GUI操作的tileset.ui,存放头文件的文件夹,存放cpp文件的文件夹,以及外部依赖。
以下为我写的一个cpp文件
关于connect里的一般使用信号和槽来写的,但是我写错了,就换了方法,还在等舒神进一步解答。
这是对应的头文件
在 编写完后需要在项目右键一下生成,再进行调试。
cpp文件:
#include "tileset.h"
#pragma execution_character_set("utf-8")
tileset::tileset(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.opencmd, &QAbstractButton::clicked, this, &tileset::changeText);
}
void tileset::changeText(){
QProcess p(0);
p.start("cmd", QStringList() << "/c" << "ping www.baidu.com");
p.waitForStarted();
p.waitForFinished();
QString strTemp = QString::fromLocal8Bit(p.readAllStandardOutput());
ui.cmdText->setText(strTemp);
ui.opencmd->setText("777");
}
h文件
#pragma once
#include <QtWidgets/QWidget>
#include <Qprocess>
#include <QMessageBox>
#include "ui_tileset.h"
class tileset : public QWidget
{
Q_OBJECT
public:
tileset(QWidget *parent = Q_NULLPTR);
private slots:
void changeText();
private:
Ui::tilesetClass ui;
};
这个是一个调用cmd来ping百度的窗口,结束后会把值打印在写好的text中,结果如下: