lv20 QT入门与基础控件 1

1 QT简介

QT是挪威Trolltech开发的多平台C++图形用户界面应用程序框架

典型应用

2 工程搭建

2.1 新建ui工程

 不要写中文路径

 

2.1 不勾选UI(主讲)

3 QT信号与槽机制 

语法:Connect(A, SIGNLA(aaa()),  B, SLOT(bbb()));

 

 

3.1 示例一个文本输入框中的内容复制到另一个文本输入框中 

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPushButton>
#include <QLineEdit>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();public slots:void movestr(){//一个文本输入框中的内容复制到另一个文本输入框中QString tem = le->text();le1->setText( tem  );}
private:QPushButton *pb;QLineEdit *le, *le1;
};#endif // WIDGET_H

widget.cpp 

#include "widget.h"
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{pb = new QPushButton("OK",this);   //按钮le = new QLineEdit(this);          //行文本输入le1 = new QLineEdit(this);// pb->setGeometry(0, 100, 50, 50);  //x,y原点  a,b大小QVBoxLayout *vbox = new QVBoxLayout;  //垂直布局管理器vbox->addWidget(le1);  //添加控件vbox->addWidget(le);vbox->addWidget(pb);this->setLayout(vbox);   //设置所使用的布局管理器//信号与槽机制//当点击了按钮,那么行文本输入清除//    connect(pb, SIGNAL(clicked(bool)), le, SLOT(clear()));/*将按钮的clicked(bool)信号与当前对象的movestr()槽函数连接起来。当按钮被点击时,会触发movestr()槽函数的执行。*/connect(pb, SIGNAL(clicked(bool)), this, SLOT(movestr()));
}Widget::~Widget()
{}

3.2 组件综合示例

学会看帮助文档

 布局控件示例

加些属性

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include <QLineEdit>
#include <QTextEdit>
#include <QComboBox>
#include <QTimeEdit>
#include <QDial>
#include <QSlider>
#include <QScrollBar>#include <QLabel>
#include <QLCDNumber>
#include <QProgressBar>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();private://inputQLineEdit *le;  QTextEdit *te;QComboBox *cb;QTimeEdit *timee;QDial *dl;QSlider *sd;QScrollBar *sb;//outputQLabel *lbtxt, *lbpic;QLCDNumber *lcd;QProgressBar *pgb;};#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QVBoxLayout>
#include <QHBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent)
{//inputle = new QLineEdit(this);   //如果后续用布局管理器,这里this可以不加te = new QTextEdit;cb = new QComboBox;cb->addItem("read");cb->addItem("write");timee = new QTimeEdit;dl = new QDial;sd = new QSlider;sd->setOrientation(Qt::Horizontal);sb = new QScrollBar;sd->setOrientation(Qt::Horizontal);QVBoxLayout *vbox = new QVBoxLayout; //垂直布局vbox->addWidget(le);vbox->addWidget(te);vbox->addWidget(cb);vbox->addWidget(timee);vbox->addWidget(dl);vbox->addWidget(sd);vbox->addWidget(sb);//outputlbtxt = new QLabel("hello");lbpic = new QLabel;QPixmap pix("1.jpg");lbpic->setFixedSize(100,100);lbpic->setScaledContents(true);lbpic->setPixmap(pix);lcd = new QLCDNumber;pgb = new QProgressBar;QVBoxLayout *vbox1 = new QVBoxLayout; //垂直布局vbox1->addWidget(lbtxt);vbox1->addWidget(lbpic);vbox1->addWidget(lcd);vbox1->addWidget(pgb);QHBoxLayout *hbox  = new QHBoxLayout; //水平布局包含两边垂直布局hbox->addLayout(vbox);hbox->addLayout(vbox1);this->setLayout(hbox);//connectconnect(dl,SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));connect(dl,SIGNAL(valueChanged(int)), pgb, SLOT(setValue(int)));connect(dl,SIGNAL(valueChanged(int)), sd, SLOT(setValue(int)));}Widget::~Widget()
{}

练习

QT是什么?QT的信号与槽机制是用来做什么的? 

QT是一个跨平台的C++应用程序开发框架,提供了丰富的工具和库,用于简化图形用户界面(GUI)程序的开发。
QT的信号与槽机制是一种在QT框架中用来处理事件和通信的机制。信号与槽机制允许对象之间进行异步通信,当一个对象的状态发生变化时,它可以发送一个信号,其他对象可以连接到这个信号并在接收到信号时执行相应的槽函数。这种机制使得对象之间的耦合度较低,易于实现模块化和复用。因此,信号与槽机制在QT框架中被广泛用于处理事件、消息传递和数据更新等各种情况。

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

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

相关文章

【leetcode热题】杨辉三角 II

难度&#xff1a; 简单通过率&#xff1a; 41.1%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个非负索引 k&#xff0c;其中 k ≤ 33&#xff0c;返回杨辉三角的第 k 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示…

中间件-Nginx漏洞整改(限制IP访问隐藏nginx版本信息)

中间件-Nginx漏洞整改&#xff08;限制IP访问&隐藏nginx版本信息&#xff09; 一、限制IP访问1.1 配置Nginx的ACL1.2 重载Nginx配置1.3 验证结果 二、隐藏nginx版本信息2.1 打开Nginx配置文件2.2 隐藏Nginx版本信息2.3 保存并重新加载Nginx配置2.4 验证结果2.5 验证隐藏版本…

IT廉连看——Uniapp——什么是Uniapp

IT廉连看——Uniapp——什么是Uniapp 目标&#xff1a; 了解什么是Uniapp 熟悉创建Uniapp项目的基本流程 一、什么是Uniapp uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到 iOS、Android、H5、以及各种小程序&…

关系型数据库事务的四性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)

关系型数据库事务的四性ACID:原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09; 事务的四性通常指的是数据库事务的ACID属性&#xff0c;包括原子性&…

Qt OpenGL程序在Windows下正常,但在Linux下无显示问题【已解决】

Qt OpenGL程序在Windows下正常&#xff0c;但在Linux下无显示问题【已解决】 引言一、问题描述二、解决方案三、解决过程记录3.1 定位问题3.2 解决问题&#xff0c;深入分析 引言 在Windows上正常运行的OpenGL程序&#xff0c;到Linux下正常编译…但是没有任何显示(只有背景颜…

告别枯燥代码,Matplotlib学习网站让图表活起来!

介绍&#xff1a;Matplotlib是一个广泛使用的Python绘图库&#xff0c;专门用于创建高质量的2D图形。 Matplotlib的特点包括&#xff1a; 丰富的图表类型&#xff1a;支持多种图表类型&#xff0c;如线图、散点图、柱状图、直方图等&#xff0c;满足不同的数据可视化需求。 高度…

openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore

文章目录 openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore229.1 设计原理229.2 核心优势229.3 使用指导 openGauss学习笔记-229 openGauss性能调优-系统调优-配置Ustore Ustore存储引擎&#xff0c;又名In-place Update存储引擎&#xff08;原地更新&#xff09…

芯来芯片的硬件的栈溢出检测机制(Stack Check)介绍

1、发生栈溢出上报的中断号 发生栈上溢&#xff0c;上报中断号0x18&#xff1b;发生栈下溢&#xff0c;上报终端号0x19&#xff1b; 2、栈溢出控制寄存器 1、MODE位设置为0&#xff0c;选择栈的上溢和下溢检查模式&#xff1b; 2、使能栈上溢检查和栈下溢检查&#xff1b; 3、设…

【LeetCode:2476. 二叉搜索树最近节点查询 + 中序遍历 + 有序表】

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

【iOS ARKit】ARWorldMap

ARWorldMap 用于存储 ARSession 检测扫描到的空间信息数据&#xff0c;包括地标&#xff08;Landmark&#xff09;、特征点&#xff08;Feature Point&#xff09;、平面&#xff08;Plane&#xff09;等&#xff0c;以及使用者的操作信息&#xff0c;如使用者添加的 ARAnchor …

FreeRTOS 的队列基础API函数的使用

参考教程来源 //* 实验平台:启明欣欣 STM32F407应用开发板(高配版) 参考正点原子 #include "freertos_demo.h" #include "./SYSTEM/usart/usart.h" #include "led.h" #include "lcd.h" #include "key.h"/*FreeRTOS*********…

【PX4SimulinkGazebo联合仿真】在Simulink中使用ROS2控制无人机沿自定义8字形轨迹正向飞行(带偏航角控制)并在Gazebo中可视化

在Simulink中使用ROS2控制无人机沿自定义8字形轨迹正向飞行&#xff08;带偏航角控制&#xff09;并在Gazebo中可视化 系统架构Matlab官方例程Control a Simulated UAV Using ROS 2 and PX4 Bridge运行所需的环境配置PX4&Simulink&Gazebo联合仿真实现方法建立Simulink模…