QT编写一个简单的包含输入输出的C++界面程序
QT官网下载
文章目录
- 一、介绍
- 1、创建项目
- 2、.ui具体内容
- 二、设计
- 1、手动添加界面,代码实现连接
- (1)ui部分
- (2)代码部分
- (3)效果
- 2、代码添加界面
- (1)代码文件
- 三、源文件
- 四、问题
一、介绍
1、创建项目
右击“文件”,选择“新建文件或项目”
选择Application中的Qt Widgets Application
输入名称,选择位置,一直下一步即可
这就是创建的内容
2、.ui具体内容
左:
双击.ui文件进入设计界面,点击编辑即回到代码界面;
上面区域是可以选择需要的东西,如布局(Layouts)、按钮(Buttons)、弹簧(spacer)、Input Widgets(输入)、Out Widgets(输出)等(我也只用过这几个)
下面区域的电脑图标可以选择debug版本也可以选择Profile、Release版本;三角形是运行,带个虫是调试,锤子是构建;
中:
中间是设计区域,初始包含主窗口(MainWindow)、菜单栏(menuBar)、工具栏(mainToolBar)、状态栏(statusBar);
下面的框框与connect函数一样,需要手动添加四个值
connect函数的格式:connect(发送者,信号,接受者,槽函数)
connect函数的写法
右:
上面部分显示的是设计区域的内容
下面可以设置对应的属性,geometry选择它的位置和大小,设置内容等
二、设计
connect函数的几种写法
1、手动添加界面,代码实现连接
(1)ui部分
将一个Input Widgets中的Text Edit,一个Display Widgets中的Text Browser,还有一个Button中的Push Button拖至设计区域
(2)代码部分
- mainwindow.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();signals: // 自定义信号,只定义即可public slots:void start(); // 自定义槽函数,在.cpp中实现,既需定义也需实现private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
- mainwindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// connect函数connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(start()));
}void MainWindow::start()
{// 清除结果区域前面缓存的结果ui->textBrowser->clear();// 获取输入框的内容QString content = ui->textEdit->toPlainText();char *content_char = content.toLatin1().data(); // 将QString转化为char字符数组//中间处理过程QString result;for(int i = 0;'\0' != content_char[i];i++)result += content_char[i];// 将获取的内容用append输出到TextBrowserui->textBrowser->append(result); // 将结果输出到结果区域
}MainWindow::~MainWindow()
{delete ui;
}
(3)效果
2、代码添加界面
(1)代码文件
- mainwindow.h文件
将上面手动添加界面的头文件中的槽函数start()删除
- 信号定义不实现
- 槽函数既需定义也需实现
- mainwindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextEdit>
#include <QTextBrowser>
#include <QPushButton>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// 添加TextEditQTextEdit * edit = new QTextEdit;edit->setParent(this); // 设置父亲为this,即这个窗口,让它显示主窗口中edit->setGeometry(0,10,131,191); // 设置位置和大小// 添加TextBrowser QTextBrowser * browser = new QTextBrowser;browser->setParent(this);browser->setGeometry(140,10,256,192);// 添加按钮QPushButton * button = new QPushButton("开始",this);button->setGeometry(310,210,75,23);// connect函数,与上面区分,用另外一种形式,也可改写为槽函数的形式connect(button,&QPushButton::clicked,[=](){QString content = edit->toPlainText();browser->append(content);});
}MainWindow::~MainWindow()
{delete ui;
}
(2)效果
三、源文件
在之前得基础上将按钮放在工具栏上,删除了状态栏,调整了位置大小
源文件
效果:
四、问题
这种直杠杠的输入只能解决那种输入了就直接处理完输出的,在中间没有停顿,遇到需要在程序运行时输入值得,就需要在中间添加其他内容
如可以用QMessageBox来进行提示,在程序运行时创建对话框来输入值。
QT编写一个简单的包含输入输出的C++界面程序相关推荐
- 利用QT编写一个简单爬虫程序
从高中到大学,一直在固定小说网中下载小说,小说网停机过好几次但最后又起死回生.最近萌发一个想法,把小说网里的小说都爬下来.. 既然要爬网站肯定要对网站结构十分了解,幸好小说网没有弄什么登陆防爬措施,结 ...
- linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手
如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...
- 第一章 开始 |编写一个简单的C++程序
学习目标: 编写一个简答的C++程序 学习内容: 1.一个简单的c++程序 2.输入和输出 3.关于注释 4.控制流 5.类简介 6.书店程序 1.1 编写一个简单的c++程序 每个C++程序都包含一 ...
- 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...
说明 如果我们要编写一个简单的 PHP 脚本,需要学习哪些基础知识呢? PHP 基础 PHP 脚本可放置于文档中的任何位置. 标准 的 PHP 脚本以 <?php 开头,以 ?> 结尾: ...
- 用 Go 编写一个简单的 WebSocket 推送服务
用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...
- ros如何编译python文件_Python为ROS编写一个简单的发布者和订阅者
Python为ROS编写一个简单的发布者和订阅者 1.创建工作空间 1.1建立文件夹hello_rospy,再在该目录下建立子目录src,并创建工作空间 mkdir -p ~/hello_rospy/ ...
- 如何用FFmpeg编写一个简单播放器详细步骤介绍
如何用FFmpeg编写一个简单播放器详细步骤介绍(转载) FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具.FFMPEG几乎为你把所有的繁重工作都做了,比如解码.编码.复用和解复用. ...
- 使用Qt做一个简单计算器
title: Calculator date: 2022-09-04 11:10:12 tags: [Qt, 应用, C++] typora-root-url: Calculator 使用Qt做一个简 ...
- 用Qt写一个简单的音乐播放器(三):增加界面(播放跳转与音量控制)
一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...
最新文章
- js动态变量名_scss引入其他scss变量,并通过js动态修改scss变量
- java mina多线程_mina2中的线程池
- Linux——进程间通信(总结)
- 云计算比本地计算机可靠,1-云计算复习题
- 13-day13-str
- 关于window.showModalDialog遭遇frameset不能初始化对话框大小
- Java中的ObjectOutputStream –将对象写入文件
- 转: Oracle AWR 报告 每天自动生成并发送邮箱
- Date类型之组件方法
- 欧姆龙cp1h指令讲解_欧姆龙PLC功能指令
- AndroidStudio个人中心个人信息修改
- 黑苹果AX201网卡驱动小白教程,小新pro13不换网卡也能上网!
- android数据库汉字,GitHub - JamesLiAndroid/chinese-xinhua: 中华新华字典数据库。包括歇后语,成语,词语,汉字。提供新华字典API。...
- vista任务管理器_为什么我的Windows Vista资源管理器发送到菜单挂起或打开缓慢?...
- java 向下转型运行时错误_8.5.2 向下转型与运行类型异常
- 点击按钮复制微信号/公众号,并打开微信APP搜索H5如何制作。
- 脉冲发生器c语言程序,可编程脉冲信号发生器的.doc
- wirshark抓包产生的pcap文件分析
- 基于Servlet的验证码登陆demo
- memcpy与memcpy_s的使用