首页 > 其他分享 >Qt(5.8.0)-Cmd模拟(纯手写)

Qt(5.8.0)-Cmd模拟(纯手写)

时间:2023-07-23 10:24:57浏览次数:38  
标签:buttonLayout 布局 Qt 5.8 Cmd QPushButton new include

以下是对上述Qt程序的详细博客,使用Markdown的代码块方式呈现:

Qt编程:实现一个简单的命令行窗口

Qt是一种跨平台的C++应用程序开发框架,可以用于开发各种类型的应用程序,包括图形界面(GUI)应用程序。本文将介绍如何使用Qt框架实现一个简单的命令行窗口,类似于Windows的运行框,用户可以在窗口中输入命令并执行。
引入必要的头文件

首先,需要引入Qt中各个类和头文件:

#include <QApplication>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QWidget>
#include <QMessageBox>

其中,QApplication类用于创建和管理Qt应用程序;QLabel用于显示文本标签;QLineEdit允许用户输入单行文本;QPushButton是按下按钮用的;QHBoxLayout和QVBoxLayout是用于布局的类;QWidget是一个基本的窗口类;QMessageBox用于显示消息框。

创建窗口和控件:

QLabel *infoLabel = new QLabel;
QLabel *openLabel = new QLabel;
QLineEdit *cmdLineEdit = new QLineEdit;
QPushButton *commitButton = new QPushButton;
QPushButton *cancelButton = new QPushButton;
QPushButton *browseButton = new QPushButton;

以上代码创建了6个指向相应控件的指针,用于创建标签、文本输入框和按钮等。

这段代码设置标签和按钮的文本内容:

infoLabel->setText("Input Cmd:");
openLabel->setText("open");
commitButton->setText("commit");
cancelButton->setText("cancel");
browseButton->setText("browse");

设置布局:

QHBoxLayout *cmdLayout = new QHBoxLayout;
cmdLayout->addWidget(openLabel);
cmdLayout->addWidget(cmdLineEdit);

QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(commitButton);
buttonLayout->addWidget(cancelButton);
buttonLayout->addWidget(browseButton);

QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(infoLabel);
mainLayout->addLayout(cmdLayout);
mainLayout->addLayout(buttonLayout);

以上代码创建了水平和垂直布局对象,并将控件添加到布局中。首先,创建一个水平布局(cmdLayout),将打开标签(openLabel)和命令输入框(cmdLineEdit)添加到水平布局中。接着,创建另一个水平布局(buttonLayout),将提交按钮(commitButton)、取消按钮(cancelButton)和浏览按钮(browseButton)添加到水平布局中。最后,创建一个垂直布局(mainLayout),将信息标签(infoLabel)、水平布局(cmdLayout)和水平布局(buttonLayout)添加到垂直布局中。
创建窗口并显示:

QWidget w;
w.setLayout(mainLayout);
w.setWindowTitle("Cmd");

w.show();

运行应用程序:

return app.exec();

最后,调用app.exec()运行应用程序的事件循环,使应用程序能够响应用户的交互操作和事件。

以上就是使用Qt框架实现一个简单的命令行窗口的示例。通过这个示例,你可以了解如何使用Qt创建窗口和控件,并处理按钮的点击事件。你可以根据自己的需求进一步扩展和完善这个程序,实现更多功能和交互性。

标签:buttonLayout,布局,Qt,5.8,Cmd,QPushButton,new,include
From: https://www.cnblogs.com/2509-SYM/p/17574726.html

相关文章

  • QT从入门到实战完整版 P36
    绘图事件widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widget(QWidget*parent=nullptr);~Widget();......
  • MQTT学习笔记
    客户端:mqttxforwindows,并提供基于互联网的mqtt服务,不用再搭建 MQTT的C语言编程:下载paho的包,在github上,有基于Linux的release版本,下载后,将其解压到任意目录,比如:/opt/mqtt目录结构如下: 安装完毕后,进行配置(如果不配置,动态链接库无法找到)设置动态链接库的搜索路径export......
  • [TSG@Site开发日志3]从C#到Qt,再从Qt到C# 和 Qt的组合开发,浅谈在采集端工控设备开发中
    [TSG开发日志3]从C#到Qt,再从Qt到C#,浅谈不同技术之间选型的利与弊当前在South公司的开发历经了几个时代,第一个时代是用C#进行的开发,第二个时代是从C#向Qt逐渐转型,第三个时代是我现在站在十字路口上,又需要将采集端软件从Qt的路上拉回来。为什么先看看AI怎么说选择使用C#还是Qt来......
  • QT从入门到实战完整版 P32 P33
    定时器1widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widget(QWidget*parent=nullptr);~Widget();......
  • 在cmd中使用pip命令出现报错Fatal error in launcher: Unable to create process usin
    1. 我找到了之前安装python的安装包,进行了修复2.然后在cmd中输入了wherepip看看是否有重复的pip路径发现没有3.重新尝试打开cmd后输入命令问题就解决了 ......
  • VTK 9.2 Qt 5.14 安装及错误处理
    安装注意:编译release和debug,通过切换配置为release和debug,文件都是在cmake的CMAKE_INSTALL_PREFIX指定的文件夹,需要编译完一种后,把这个文件夹改名(比如debug配置,则改名为debug),不然会覆盖。在Qt项目中,出现错误:“无法解析的外部符号__imp_gl***”,“项目-属性-链接器-输入”添加:OpenG......
  • Windows10 下 Neo4j1.5.8 安装教程
    前言Neo4j是一个高性能的、NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的Java持久化引擎,这里就不把他和常用关系型数据库做对比了。因为篇幅有限,我这里也是第一次使用,所以以下完全是保姆级的安装教程了。 安装步骤1.打开Neo......
  • VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT
    下载VTK安装包在VTK官网Download|VTK中下载VTK9.1.0待编译源码,解压后在路径Documentation/dev/bulid.md中可以看到官方提供的Prerequisites以及简易教程编译环境安装按照官方提供的Prerequisites,安装以下环境:CMakeVersion3.12ornewer,however,thelatestversionisal......
  • MQTT 与 Kafka|物联网消息与流数据集成实践
    MQTT如何与Kafka一起使用?MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,专为受限网络环境下的设备通信而设计。ApacheKafka是一个分布式流处理平台,旨在处理大规模的实时数据流。Kafka和MQTT是实现物联网数据端到端集成的互补技术。通过结合使用......
  • Windows10 下 Neo4j1.5.8 安装教程
    前言Neo4j是一个高性能的、NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的Java持久化引擎,这里就不把他和常用关系型数据库做对比了。因为篇幅有限,我这里也是第一次使用,所以以下完全是保姆级的安装教程了。 安装步骤1.打开Neo4j官......