Qt (ui界面)信号与槽函数 组件连接

2023-11-12

重点:信号与槽连接机制。

难点:信号与槽函数的 参数使用。

头函数:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QIcon>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public slots:
    void on_cancel_pushButton(); //取消按钮槽函数
    void on_login_pushButton(); //登录按钮槽函数

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

原函数:

#include "widget.h"
#include "ui_widget.h"

void Widget::on_cancel_pushButton()//取消按钮槽函数
{
    this->close();
}

void Widget::on_login_pushButton()//登录按钮槽函数
{
    if("admin"==ui->usr_name_lineEdit->text() && "123456"==ui->passwd_lineEdit->text())
    {
        qDebug()<<"登陆成功";
        this->close();
    }
    else
    {
        qDebug()<<"密码与账号不匹配";
    }
}

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setWindowTitle("华清远见"); //设置窗口属性
    this->setWindowIcon(QIcon(":/logo.png"));
    this->setFixedSize(500, 400);

    ui->usr_name_label->setText("账号:");// 标签属性
    ui->usr_name_label->setFixedSize(30, 30); //固定尺寸
    ui->usr_name_label->setPixmap(QPixmap(":/userName.jpg"));
    ui->usr_name_label->setScaledContents(true); //设置图片自适应控件大小
    ui->passwd_label->setText("密码:");
    ui->passwd_label->setFixedSize(30, 30);
    ui->passwd_label->setPixmap(QPixmap(":/passwd.jpg"));
    ui->passwd_label->setScaledContents(true);

    ui->passwd_lineEdit->setEchoMode(QLineEdit::Password); //行编辑属性(密码回显 隐藏模式)

    ui->cancel_pushButton->setText("取消");//按钮属性
    ui->cancel_pushButton->setIcon(QIcon(":/cancel.png"));
    ui->login_pushButton->setText("登录");
    ui->login_pushButton->setIcon(QIcon(":/login.png"));

    connect(ui->login_pushButton, SIGNAL(clicked()), \
            this, SLOT(on_login_pushButton()));//Qt4

    connect(ui->cancel_pushButton, &QPushButton::clicked, \
            this, &Widget::on_cancel_pushButton);//Qt5
}

Widget::~Widget()
{
    delete ui;
}

测试函数:

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

测试结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt (ui界面)信号与槽函数 组件连接 的相关文章

随机推荐

  • 三个月华为od工作感受:关于转正,身份和适合谁

    三个月对Od认识的变化 关于华为Od在网上已经被讨论得很多了 在各大IT求职论坛中Od都成为流量密码了 一旦有人谈起od评论区就会开吵 这几个月中我对Od的认识也是从浅入深 对Od的态度也在变化 今年 2022年 4月份的时候那时候我刚入职
  • Redis实现商品秒杀

    随着互联网的发展和消费者的需求越来越高 商品的销售也变得越来越激烈 而对于商家来说 最直观的解决方式即为促销活动 然而 促销活动也会引发一定的风险 如果处理得不当 可能会出现 抢购 活动中的库存不足等问题 本文将利用Redis实现商品秒杀
  • 离线部署node项目、nuxt项目

    如果你的目标系统不具备互联网访问功能 或者具有严格的防火墙管控 并且你想部署一个node应用 那么以下内容可能对你有些帮助 准备好源代码工程 准备好一个具有相同node环境且具备访问互联网功能的同种系统 以下称NetOS 将源代码工程目录拷
  • 一个简单的登录注册界面流程介绍

    登录页面实现 其他页面的实现可以到github上克隆下来 login interface login server 一 用户登录 1 密码登录 流程 用户输入密码 表单使用正则验证用户名和密码格式 点击登录 对密码进行加密 并发送登录验证请
  • LeetCode每日一练 —— 88. 合并两个有序数组

    前言 Wassup guys 我是Edison 今天是 LeetCode 上的 leetcode 88 合并两个有序数组 Let s get it 文章目录 1 题目分析 2 题目图解 思路一 思路二 3 代码实现 1 题目分析 给你两个按
  • ENU、EPSG、ECEF坐标系科普(三维重建)

    科普一 ENU和EPSG实际上代表了两个不同的概念 这两者并不是直接对比的 1 ENU坐标系 ENU坐标系是一种本地切面坐标系 用于表示与地理位置相关的空间数据 在ENU坐标系中 E代表东 East N代表北 North U代表上 Up 它
  • LeetCode 406. Queue Reconstruction by Height 解题报告

    LeetCode 406 Queue Reconstruction by Height 解题报告 题目描述 Suppose you have a random list of people standing in a queue Each
  • 算法—反转链表

    题目 实现单链表的逆转函数 输入一个链表 反转链表后 返回翻转之后的链表 分析 利用三个指针 head node nodeNext node指向当前结点 head指向当前结点的前一个结点 nodeNext指向当前结点的后一个结点 先将hea
  • 浏览器动态显示服务器日志,基于 websocket 实现远程实时日志 在浏览器中查看设备的运行日志...

    本文介绍一个基于websocket实现的远程实时日志系统 可以通过浏览器查看远程移动设备的实时运行日志 系统由三个部分组成 1 服务器 与移动设备和浏览器建立websocket连接 将移动设备websocket上读取的实时日志转发到对应的浏
  • 每日算法-回文链表

    题目 请判断一个链表是否为回文链表 示例 1 输入 1 gt 2 输出 false 示例 2 输入 1 gt 2 gt 2 gt 1 输出 true 进阶 你能否用 O n 时间复杂度和 O 1 空间复杂度解决此题 解法 思路一 先把链表的
  • QGIS自定义地图工具

    官方示例 首先看一下官方文档中的矩形工具源码 class RectangleMapTool QgsMapToolEmitPoint def init self canvas self canvas canvas QgsMapToolEmit
  • fatal: pathspec ‘fileName‘ did not match any files 解决办法

    再删除文件的时候突然出现了这个问题 fatal pathspec fileName did not match any files 分析如下 这个文件怎么回事 为什么删不掉 难道是分支的错误 还是怎么回事 产生原因 该文件存在于 gitig
  • C语言----实现有向图/无向图的创建与基本操作(深度、广度优先遍历)

    最近发现一个不错的项目 Github上数据结构所有算法源码实现 数据结构 严蔚敏 吴伟民 教材源码与习题解析 1 图的数组 邻接矩阵 存储表示 包含算法 有向图 无向图创建 添加顶点 删除边 插入边 深度优先遍历 递归 广度优先遍历 队列实
  • 跨平台的桌面应用程序开发框架Electron

    electron electron Stars 109 3k License MIT Electron 是一个基于 Node js 和 Chromium 的开源框架 允许使用 JavaScript HTML 和 CSS 编写跨平台的桌面应用
  • Elasticsearch系列---聚合查询原理

    概要 本篇主要介绍聚合查询的内部原理 正排索引是如何建立的和优化的 fielddata的使用 最后简单介绍了聚合分析时如何选用深度优先和广度优先 正排索引 聚合查询的内部原理是什么 Elastichsearch是用什么样的数据结构去执行聚合
  • linux 下交换 esc与cap的方法。

    有两种方法 1 xmodmap 2 dconf editer 操作如下图所示 xkb options 改为图片所示
  • STM32项目 -- 选题分享(部分)

    前言 分享部分STM32项目选题以及实现效果 暂时没有分享代码 列表 编号 项目名称 难度 使用器件 实现效果 1 基于STM32的智能万用表设计 3 STM32F103C8T6 OLED 1 测量电压 2 OLED显示测量值 3 实现层级
  • ASP.NET-----Repeater数据控件的用法总结

    一 Repeater控件的用法流程及实例 1 首先建立一个网站 新建一个网页index aspx 2 添加或者建立APP Data数据文件 然后将用到的数据库文件放到APP Data文件夹中 3 打开数据库企业管理器 数据库服务器为loca
  • 【帧同步】关于状态同步的经验分享

    方案 低延迟环境下 比如国内 局域网情况下 写个同步那都不是难事 是个客户端看点书就会写了 难点在于 如何去处理 高延迟 以及及时响应的情况 我举个例子 fps或者tank游戏中 子弹和炮弹的射速是很快的 如果两边在对轰过程中 又碰到了 附
  • Qt (ui界面)信号与槽函数 组件连接

    重点 信号与槽连接机制 难点 信号与槽函数的 参数使用 头函数 ifndef WIDGET H define WIDGET H include