QT简单实例
QT简单实例
- QT简单实例
- 一:通过拖动创建
- 1.创建工程
- 2.拖动控件实现响应
- 3.文件目录
- 3.1 TestQDialog.pro
- 3.2 main.cpp
- 3.3 dialog.h
- 3.4 dialog.cpp
- 二:通过动态创建
- 1.创建工程
- 2.文件目录
- 2.1 TestQDialogSelf.pro
- 2.2 main.cpp
- 2.3 dialog.h
- 2.4 dialog.cpp
QT简单实例
一:通过拖动创建

1.创建工程
1.1 新建项目->Application->Qt Widegets Application
1.2 基类->QDialog
2.拖动控件实现响应
2.1 双击 dialog.ui
2.2 拖动 Display Widgets–Label、Input Widgets–Line Edit、Buttons–Push button

2.3修改控件属性

2.4最后,修改areaLabel2的“frameShape”为Panel;“frameShadow”为Sunken,如图1.19所示。最终效果如图所示

2.5添加控件响应函数
1)方式1:在LineEdit文本框内输入半径值,然后单击“计算”按钮,则在areaLabel 2中显示对应的圆面积。编写代码步骤如下。(1)在“计算”按钮上单击鼠标右键,在弹出的下拉菜单中选择“转到槽…”命令,如图1.22所示。在弹出的对话框中选择“clicked()”信号,如图所示,

2)方式2:在LineEdit内输入半径值,不需要单击按钮触发单击事件,直接就在areaLabel 2中显示圆面积。编写代码步骤如下。(1)在“LineEdit”编辑框上单击鼠标右键,在弹出的下拉菜单中选择“转到槽…”菜单项,在弹出的对话框中选择“textChanged(QString)”信号,如图所示。

3.文件目录
3.1 TestQDialog.pro
#-------------------------------------------------
#
# Project created by QtCreator 2025-04-15T09:43:14
#
#-------------------------------------------------QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = TestQDialogSelf
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \dialog.cppHEADERS += \dialog.hFORMS += \dialog.ui
3.2 main.cpp
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}
3.3 dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();protected:Ui::Dialog *ui;protected slots:void on_countBtn_clicked();
private slots:void on_radiusLineEdit_textChanged(const QString &arg1);
};#endif // DIALOG_H
3.4 dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);//删除标题栏setWindowFlags(Qt::FramelessWindowHint);// 背景黑色//setStyleSheet("background-color: black;");
}Dialog::~Dialog()
{delete ui;
}void Dialog::on_countBtn_clicked()
{const double PI = 3.1416;QString str = ui->radiusLineEdit->text();int nVal = str.toInt();double dArea = PI*nVal*nVal;QString strRes;strRes.setNum(dArea);ui->areaLabel_2->setText(strRes);
}void Dialog::on_radiusLineEdit_textChanged(const QString &arg1)
{const double PI = 3.1416;int nVal = arg1.toInt();double dArea = nVal*nVal*PI;QString strRes;ui->areaLabel_2->setText(strRes.setNum(dArea));
}
二:通过动态创建
1.创建工程
1.1 新建项目->Application->Qt Widegets Application
1.2 基类->QDialog
2.文件目录

2.1 TestQDialogSelf.pro
#-------------------------------------------------
#
# Project created by QtCreator 2025-04-15T09:43:14
#
#-------------------------------------------------QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = TestQDialogSelf
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \dialog.cpp
HEADERS += \dialog.h
FORMS += \dialog.ui
2.2 main.cpp
#include "dialog.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}
2.3 dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();protected slots:void showArea();void showChangeArea(QString str);protected:Ui::Dialog *ui;protected:QLabel* pLabel_1;QLabel* pLabel_2;QLineEdit* pLineEdit;QPushButton* pPushButton;
};
#endif // DIALOG_H
2.4 dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QGridLayout>Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);//去掉标题栏setWindowFlags(Qt::FramelessWindowHint);//创建控件pLabel_1 = new QLabel(this);pLabel_1->setText("请输入圆的半径:");pLabel_2 = new QLabel(this);pLineEdit = new QLineEdit(this);pPushButton = new QPushButton(this);pPushButton->setText("显示对应圆的面积");//创建容器QGridLayout* mainLayout = new QGridLayout(this);mainLayout->addWidget(pLabel_1,0,0);mainLayout->addWidget(pLineEdit,0,1);mainLayout->addWidget(pLabel_2,1,0);mainLayout->addWidget(pPushButton,1,1);//绑定控件响应函数connect(pPushButton,SIGNAL(clicked()),this,SLOT(showArea()));connect(pLineEdit,SIGNAL(textChanged(QString)),this,SLOT(showChangeArea(QString)));
}Dialog::~Dialog()
{delete ui;
}void Dialog::showArea()
{const double PI = 3.1416;QString str = pLineEdit->text();int nVal = str.toInt();double dArea = PI*nVal*nVal;QString strRes;strRes.setNum(dArea);pLabel_2->setText(strRes);
}void Dialog::showChangeArea(QString str)
{const double PI = 3.1416;int nVal = str.toInt();double dArea = PI*nVal*nVal;QString strRes;strRes.setNum(dArea);pLabel_2->setText(strRes);
}
相关文章:
QT简单实例
QT简单实例 QT简单实例一:通过拖动创建1.创建工程2.拖动控件实现响应3.文件目录3.1 TestQDialog.pro3.2 main.cpp3.3 dialog.h3.4 dialog.cpp 二:通过动态创建1.创建工程2.文件目录2.1 TestQDialogSelf.pro2.2 main.cpp2.3 dialog.h2.4 dialog.cpp QT简单…...
Linux:初学者的简单指令
文章目录 pwd(Print working directory)whoamilsmkdir ~~cd ~~touch ~~rm ~~ 充当后端服务,我们用xshell工具来进行操作 其中Linux文件是/目录/目录/目录或文件/来表示的(其中目录可以看作是windows操作系统的文件夹,只是Linux中…...
zynq7020 ubuntu_base 跟文件系统
整体流程 制作 ubuntu_base 镜像运行 petalinux 构建的 ramdisk 系统用 ramdisk 系统把 ubuntu_base 镜像烧录到 emmc从 emmc 跟文件系统 启动内核 制作 ubuntu_base 镜像 制作 ubuntu_base 镜像 sudo apt-get install qemu-user-static # 安装 q…...
大数据如何让供应链更丝滑?一场数据驱动的效率革命
大数据如何让供应链更丝滑?一场数据驱动的效率革命 在这个一切讲求“快准狠”的时代,供应链的管理直接决定了企业的竞争力。你能想到吗?一个订单的配送延迟,可能让客户流失;一个采购决策的失误,可能导致库…...
端侧大模型综述On-Device Language Models: A Comprehensive Review
此为机器翻译,仅做个人学习使用 设备端语言模型:全面回顾 DOI:10.48550/arXiv.2409.00088 1 摘要 大型语言模型 (LLM) 的出现彻底改变了自然语言处理应用程序,由于减少延迟、数据本地化和个性化用户体验…...
量子安全邮件系统 —— 量子随机数生成器集成
目录 量子安全邮件系统 —— 量子随机数生成器集成一、项目背景与简介二、量子随机数生成器的理论基础三、系统架构设计3.1 模块划分3.2 系统架构图(Mermaid示意图)四、关键算法与技术实现4.1 量子数据采集与预处理4.2 随机数生成算法4.3 安全性与随机性检验五、GUI设计与系统…...
python实现音视频下载器
一、环境准备 确保当前系统已安装了wxPython 、 yt-dlp 和FFmpeg。当前主要支持下载youtube音视频 1、安装wxPython pip install wxPython2、安装yt-dp pip install wxPython yt-dlp3、安装FFmpeg 在Windows 10上通过命令行安装FFmpeg,最简便的方式是使用包管理…...
三、小白如何用Pygame制作一款跑酷类游戏(按键图片和距离的计算)
三、小白如何用Pygame制作一款跑酷类游戏(实现移动距离的计算,以及按键指引的添加) 文章目录 三、小白如何用Pygame制作一款跑酷类游戏(实现移动距离的计算,以及按键指引的添加)前言一、创建字体文件夹1.可…...
H5:实现安卓和苹果点击下载App自动跳转到对应的应用市场
一、需求场景 手机扫描下载App,需要根据不同手机自动跳转到对应的应用市场(商店)里,苹果手机直接打开App Store里指定的app页面,安卓手机如果是海外用户则打开GooglePlay 商店里指定的app页面,国内直接下载…...
【Linux】文件传输归档与压缩
目录 配置实验环境 文件传输方法--scp,rsync scp rsync 归档与压缩--tar,gz,bz2,xz,zip 归档---tar 压缩 zip gzip bzip2 xz 归档并压缩 gz bz2 xz 拓展du 配置实验环境 在多个linux系统进行系统传输…...
3D人脸扫描技术如何让真人“进入“虚拟,虚拟数字人反向“激活“现实?
随着虚拟人技术的飞速发展,超写实数字人已经成为数字娱乐、广告营销和虚拟互动领域的核心趋势。无论是企业家、知名主持人还是明星,数字分身正在以高度还原的形象替代真人参与各类活动,甚至成为品牌代言、直播互动的新宠。 3D人脸扫描&#…...
Git标签的认识
Git标签完全指南:从基础到企业级发布策略 前言 在软件发布领域,Git标签是版本管理的基石。根据2023年GitHub年度报告显示,85%的开源项目使用标签进行版本控制。然而,许多开发者仅停留在git tag的基础使用层面,未能充分…...
Docker实战:从零构建高可用的MySQL主从集群与Redis集群
在分布式系统架构中,数据库集群是保障数据高可用和性能的关键组件。本文将通过Docker技术,手把手教你搭建MySQL主从集群和Redis Cluster,并分享独创的优化技巧与运维实战经验。 一、为什么选择Docker部署集群? 传统数据库集群搭…...
【Rust基础】使用Rocket构建基于SSE的流式回复
背景 我们正在使用Rust开发基于RAG的知识库系统,其中对于模型的回复使用了常用的SSE,Web框架使用Rocket,Rocket提供了一个简单的方式支持SSE,但没有会话保持、会话恢复等功能,因此我们自己简单实现这两个功能。 使用R…...
高级java每日一道面试题-2025年4月07日-微服务篇[Nacos篇]-如何监控Nacos的运行状态?
如果有遗漏,评论区告诉我进行补充 面试官: 如何监控Nacos的运行状态? 我回答: 监控Nacos运行状态的综合方案 在Java高级面试中,监控Nacos运行状态是一个重要的技术点,它直接关系到微服务架构的稳定性和性能。以下是一个综合的监控方案&am…...
【3GPP核心网】【5G】精讲5G系统的策略和计费控制框架
1. 欢迎大家订阅和关注,精讲3GPP通信协议(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待! 目录 1. 系统架构 1.1 非漫游架构 1.2 漫游架构 1.3 支持Rx接口 2. 服务化接口及参考点 2.1 PCF 与 AF 间接口 2.2 PCF与SMF间接口 2.3 PCF与AMF间接口 2.4 V-PC…...
大前端基础学习
一、cs架构和bs架构 c:客户端, b:浏览器(无需安装,无需更新,可跨平台)√ s:server服务端,帮我们保 存信息,传递信息 二、 altshift向下键向下复制一行 …...
Axios 的 POST 请求:QS 处理数据的奥秘与使用场景解析
在现代前端开发中,Axios 已经成为了进行 HTTP 请求的首选库之一,它的简洁易用和强大功能深受开发者喜爱。当使用 Axios 进行 POST 请求时,我们常常会遇到一个问题:是否需要使用 QS 库来处理请求数据?什么时候又可以不用…...
Linux 防火墙( iptables )
目录 一、 Linux 防火墙基础 1. 防火墙基础概念 (1)防火墙的概述与作用 (2)防火墙的结构与匹配流程 (3)防火墙的类别与各个防火墙的区别 2. iptables 的表、链结构 (1)规则表 …...
【redis进阶三】分布式系统之主从复制结构(1)
目录 一 为什么要有分布式系统? 二 分布式系统涉及到的非常关键的问题:单点问题 三 学习部署主从结构的redis (1)创建一个目录 (2)进入目录拷贝两份原有redis (3)使用vim修改几个选项 (4)启动两个从节点服务器 (5)建立复制,要想配…...
EM储能网关ZWS智慧储能云应用(9) — 远程OTA升级
ZWS智慧储能云平台支持远程OTA固件升级,可以针对具体的储能设备进行升级,升级储能网关、EMS主控软件、PCS、BMS等。 简介 储能系统通常高度集成化,一体化设计,将EMS、BMS(电池管理系统)、PCS(…...
RabbitMQ 详解:核心概念、集群模式与消息分布
RabbitMQ 是一个基于高级消息队列协议(AMQP)的开源消息中间件,广泛应用于分布式系统中,用于实现可靠的消息传递。其强大的功能和灵活的架构使其成为构建高可用、可扩展系统的理想选择。本文整理了 RabbitMQ 的核心概念、集群模式及…...
ubuntu24.04LTS安装向日葵解决方案
去向日葵官方下载ubuntu使用的deb包 向日葵 输入如下命令安装,将具体版本修改成自己下载的版本 andrew in ~/下载 λ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 正在选中未选择的软件包 sunloginclient。 (正在读取数据库 ... 系统当前共安装有 290947…...
LoRA个关键超参数:`LoRA_rank`(通常简称为 `rank` 或 `r`)和 `LoRA_alpha`(通常简称为 `alpha`)
LoRA (Low-Rank Adaptation) 中的两个关键超参数:LoRA_rank(通常简称为 rank 或 r)和 LoRA_alpha(通常简称为 alpha)。 LoRA 的核心思想是,在对大型预训练模型(如 LLM 或 Stable Diffusion&…...
C++11智能指针深度解析:在Visual Studio中高效管理内存
文章目录 **C++11智能指针深度解析:在Visual Studio中高效管理内存****一、C++11智能指针的核心价值****二、三大智能指针详解与Visual Studio实战****1. `std::unique_ptr`:独占所有权****2. `std::shared_ptr`:共享所有权****3. `std::weak_ptr`:打破循环引用****三、高级…...
达梦官方管理工具SQLark:自动识别外键约束、check约束与虚拟列,助力高效生成测试数据
在数据库管理和应用开发过程中,高质量的测试数据对于系统调试和POC测试至关重要。达梦官方推出的新一代管理工具 SQLark百灵连接,其数据生成功能,可以为应用开发者、DBA 以及测试人员带来极大便利,能够轻松应对各类复杂的测试场景…...
Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]
Visio绘图工具全面科普:解锁专业图表绘制新境界🌟 在信息爆炸的时代,清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图📊、组织结构图👥,还是规划网络拓扑🖧,一款强大的绘图…...
RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL--RPC源代码分析
RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL 第一部分: 1: kd> p RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION0x167: 001b:77bf6957 393dec35c877 cmp dword ptr [RPCRT4!gfRPCVerifierEnabled (77c835ec)],edi 1: kd> …...
快速认识:数据库、数仓(数据仓库)、数据湖与数据运河
数据技术核心概念对比表 概念核心定义核心功能数据特征典型技术/工具核心应用场景数据库结构化数据的「电子档案柜」,按固定 schema 存储和管理数据,支持高效读写和事务处理。实时事务处理(增删改查),确保数据一致性&…...
不关“猫”如何改变外网IP?3种免重启切换IP方案
每次更换外网IP都要重启路由器?太麻烦了!那么,不关猫怎么改变外网IP?无论是为了网络调试、爬虫需求,还是解决IP限制问题,频繁重启设备既耗时又影响效率。其实,更换外网IP并不一定要依赖“重启大…...
