7、Qt5开发及实列(笔记3-系统操作)

说明:此示例包含了基本的常使用的系统操作

效果如下:
在这里插入图片描述

mainwindos.cpp

#pragma execution_character_set("utf-8")
#include "mainwindow.h"#include <QDesktopWidget>
#include <QApplication>
#include <QHostInfo>
#include <QNetworkInterface>#include <QListView>
#include <QStringListModel>
#include <QProcess>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{QDesktopWidget *desktopWidget = QApplication::desktop();//1.1 获取屏幕分辨率QRect screenRect = desktopWidget->screenGeometry();int sWidth = screenRect.width();//屏幕宽度int sHeight = screenRect.height();QLabel *m_label00 = new QLabel("屏幕分辨率:");QString ip = (QString::number(sWidth,10)+"X"+QString::number(sHeight,10));QLabel *m_label01 = new QLabel(ip);//1.2 获取计算机名称QString localHostName = QHostInfo::localHostName();QLabel *m_label10 = new QLabel("本机名:");QLabel *m_label11 = new QLabel(localHostName);   //1.3 获取计算机IPQLabel *m_label20 = new QLabel("IP:");QLabel *m_label21 = new QLabel();QHostInfo hostInfo = QHostInfo::fromName(localHostName);QList<QHostAddress> listAddress = hostInfo.addresses();// 创建一个 QList,类型 QHostAddressif(!listAddress.isEmpty()){m_label21->setText(listAddress.first().toString());}//1.5  默认取应用程序根目录QString strdirpath;strdirpath = qApp->applicationDirPath();//QLabel *m_label40 = new QLabel("applicationDirPath:");QLabel *m_label41 = new QLabel(strdirpath);//1.6  默认取应用程序可执行文件名称QString strapplicationFilePath;strapplicationFilePath = qApp->applicationFilePath();QLabel *m_label50 = new QLabel("applicationFilePath:");QLabel *m_label51 = new QLabel(strapplicationFilePath);//1.7 获取系统环境变量//标题QLabel *m_label30 = new QLabel("获取 Path 环境变量:");QListView *listView = new QListView();//实例 QListViewlistView->setGeometry(QRect(10,10,380,280));//QListView 位置QStringList strList = QProcess::systemEnvironment();//实例 QStringList 接收 path 系统变量QStringListModel *model = new QStringListModel(strList);//装载数据模型listView->setModel(model);//绑定数据//1.8执行系统命令//实例命令输入对话框comm = new QLineEdit();comm->setText("ipconfig");comm->setGeometry(QRect(20,20,260,25));//实例执行按钮btClick = new QPushButton(this);btClick->setText("执行");btClick->setGeometry(QRect(290,20,80,25));connect(btClick,SIGNAL(clicked()),this,SLOT(clickExecution()));//实例输出对话框outEdit = new QPlainTextEdit(this);outEdit->setGeometry(QRect(20,60,350,200));//实例 QProcessprocess = new QProcess;connect(process, SIGNAL(readyRead()), this, SLOT(readOutput()));//dos 命令查阅label = new QLabel(this);label->setGeometry(QRect(30,265,200,25));label->setText(tr("<a href=\"http://www.baidu.com/s?wd=dos 命令大全\">命令 DOS查阅</a>"));//开启超链接label->setOpenExternalLinks(true);QFrameshow1 = new QFrame();QFrameshow1->setFrameStyle(QFrame::Panel|QFrame::Sunken);//设置框架样式QGridLayout *childlayout1 = new QGridLayout();childlayout1->addWidget(m_label00,0,0,1,1);childlayout1->addWidget(m_label01,0,1,1,2);childlayout1->addWidget(m_label10,1,0);childlayout1->addWidget(m_label11,1,1);childlayout1->addWidget(m_label20,2,0);childlayout1->addWidget(m_label21,2,1);childlayout1->addWidget(m_label40,3,0);childlayout1->addWidget(m_label41,3,1);childlayout1->addWidget(m_label50,4,0);childlayout1->addWidget(m_label51,4,1);QVBoxLayout *childlayout2 = new QVBoxLayout;childlayout2->addWidget(m_label30);childlayout2->addWidget(listView);QGridLayout *childlayout3 = new QGridLayout();childlayout3->addWidget(comm);childlayout3->addWidget(btClick);childlayout3->addWidget(outEdit);//childlayout3->addWidget(process);childlayout3->addWidget(label);QVBoxLayout *mainlayout = new QVBoxLayout(QFrameshow1);mainlayout->addLayout(childlayout1);mainlayout->addLayout(childlayout2);mainlayout->addLayout(childlayout3);//显示布局控件QWidget *m_widget = new QWidget();m_widget->setLayout(mainlayout);this->setCentralWidget(m_widget);
}MainWindow::~MainWindow()
{}//执行 DOS 命令
void MainWindow::clickExecution()
{//定义变量接收 dos 命令QString info = comm->text();//执行命令process->start(info);//绑定反馈值outEdit->setPlainText(output);
}
//QProcess 事件
void MainWindow::readOutput()
{//接收反馈信息output +=process->readAll();//将返回值绑定控件outEdit->setPlainText(output);
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QFrame>
#include <QLabel>
#include <QWidget>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QLineEdit>
#include <QPushButton>
#include <QPlainTextEdit>
#include <QProcess>
#include <QLabel>
class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = 0);~MainWindow();QFrame *QFrameshow1;private:QLineEdit *comm; //dos 命令输入框QPlainTextEdit *outEdit; //命令执行反馈框QPushButton *btClick; //执行按钮QProcess *process; //QProcessQString output; //接收反馈信息QLabel *label;private slots:void clickExecution(); //点击按钮事件void readOutput(); //QProcess 事件};#endif // MAINWINDOW_H

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker基础镜像

一、配置 docker 本地源 [docker-ce-stable] nameDocker CE Stable baseurlhttp://10.35.186.181/docker-ce-stable/ enabled1 gpgcheck0 配置阿里云Docker Yum源 yum install -y yum-utils device-mapper-persistent-data lvm2 git yum-config-manager --add-repo http://mirr…

Windows安装Visual Studio2022 + QT5.15开发环境

最近&#xff0c;把系统换成了Windows11&#xff0c;想重新安装QT5.12&#xff0c;结果发现下载不了离线安装包。 最后索性安装QT5.15了&#xff0c;特此记录下。 预祝大家&#xff1a;不论是何时安装&#xff0c;都可以安装到指定版本的QT。 一、VS2022安装 VS2022官网下…

ubuntu 22.04 安装部署gitlab详细过程

目录 gitlab介绍 gitlab安装 步骤1&#xff1a;更新系统 步骤2&#xff1a;添加 GitLab 的 GPG 密钥 gitlab企业版 gitlab社区版 步骤3&#xff1a;安装 GitLab 社区版 社区版 步骤4&#xff1a;初始化 GitLab 步骤5&#xff1a;访问 GitLab 步骤6&#xff1a;查看r…

C++ - 基于多设计模式下的同步异步⽇志系统

1.项目介绍 项⽬介绍 本项⽬主要实现⼀个⽇志系统&#xff0c; 其主要⽀持以下功能: • ⽀持多级别⽇志消息 • ⽀持同步⽇志和异步⽇志 • ⽀持可靠写⼊⽇志到控制台、⽂件以及滚动⽂件中 • ⽀持多线程程序并发写⽇志 • ⽀持扩展不同的⽇志落地⽬标地 2.开发环境 • Cent…

AI学习记录 - 导数在神经网络训练中的作用(自己画的图,很丑不要介意!)

导数的作用 我们去调整神经网络的权重&#xff0c;一般不会手动去调整&#xff0c;如果只有很少的神经元&#xff0c;人工调整确实可以实现&#xff0c;当我们有几十层&#xff0c;一层几百上千个神经元的时候&#xff0c;人工调整就不可能了。 一个权重的调整涉及到两个问题&…

TCP的FIN报文可否携带数据

问题发现&#xff1a; 发现FTP-DATA数据传输完&#xff0c;TCP的挥手似乎只有两次 实际发现FTP-DATA报文中&#xff0c;TCP层flags中携带了FIN标志 piggyback FIN 问题转化为 TCP packet中如果有FIN flag&#xff0c;该报文还能携带data数据么&#xff1f; 答案是肯定的 RFC7…

【LeetCode:3098. 求出所有子序列的能量和 + 记忆化缓存】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十七章 字符设备和杂项设备总结回顾

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Redis核心技术与实战学习笔记

Redis核心技术与实战学习笔记 最近想沉下心来看下redis&#xff0c;买了蒋德钧老师的《Redis 核心技术与实战》,这里记录一些学习笔记 希望能够坚持下去有想一起学习的童鞋&#xff0c;可以点击跳转到文章尾部获取学习资源,仅供学习不要用于任何商业用途!!! redis知识全景图 …

前端JS特效第50集:zyupload图片上传

zyupload图片上传&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; var operimg_id; var zoom_rate100; var zoom_timeout; function rotateimg(){var smallImg$("#"operimg_id);var numsmallImg.attr(curr_rotate);if(nu…

ESP8266用AT指令实现连接MQTT

1准备工作 硬件&#xff08;ESP8266&#xff09;连接电脑 硬件已经烧入了MQTT透传固件 2实现连接 2-1&#xff08;进入AT模式&#xff09; 打开串口助手发送如下指令 AT 2-2&#xff08;复位&#xff09; ATRST 2-3&#xff08;开启DHCP&#xff0c;自动获取IP&#x…

免费视频批量横版转竖版

简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具&#xff0c;提供高效便捷的视频批量横转竖&#xff0c;主要功能&#xff1a; 导入与删除文件&#xff1a;轻松导入多个视频文件&#xff0c;删除不必要的文件。暂停与继续处理&#xff1a;随时暂停和继续处理。…

Python学习笔记43:游戏篇之外星人入侵(四)

前言 在前面的文章中&#xff0c;我们已经对项目进行了简单的分析&#xff0c;并且已经编写好了基础的代码&#xff0c;接下来的工作就是进一步的分析游戏的业务功能&#xff0c;在基础代码之上&#xff0c;进行填充。 背景颜色 我们简单的创建窗口以后&#xff0c;除了命名…

设置使用小米google play和APK的下载使用

我们常常遇到从google play无法下载apk文件&#xff0c;被迫从APKcombo和APKpure两个网站下载安装文件&#xff0c;可是安装文件在手机google play服务框架未开启时即使安装好了&#xff0c;也没法用。也需要把google play服务框架安装好&#xff0c;下面分别介绍&#xff1a; …

Mac 中安装内网穿透工具ngrok

ngrok 是什么&#xff1f; Ngrok 是一个网络工具&#xff0c;主要用于在网络中创建从公共互联网到私有或本地网络中运行的web服务的安全隧道。它充当了一个反向代理&#xff0c;允许外部用户通过公共可访问的URL访问位于防火墙或私有网络中的web应用程序或服务。Ngrok 特别适用…

Three.js 官方文档学习笔记

Address&#xff1a;Three.js中文网 (webgl3d.cn) Author&#xff1a;方越 50041588 Date&#xff1a;2024-07-19 第一个3D案例—创建3D场景 创建3D场景对象Scene&#xff1a; const scene new THREE.Scene(); 创建一个长方体几何对象Geometry&#xff1a; const geomet…

实验八: 彩色图像处理

目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …

某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC]

文章目录 某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请…

【Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17&#xff08;可不配置环境变量&#xff09; 目前skywalking 9.0及以上版本基本都不支持JDK8&#xff0c;需要JDK11-21&#xff0c;具体版本要求在官网查看。 我这里使用的是skywalking9.…