QT事件处理

这篇具有很好参考价值的文章主要介绍了QT事件处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设计一个闹钟,定时播报内容。

QT事件处理,qt,开发语言

 文章来源地址https://www.toymoban.com/news/detail-543814.html

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimerEvent>
#include <QDateTime>
#include <QMessageBox>
#include <QTextToSpeech>
#include <QDebug>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    int t;
    int flag;
    QTextToSpeech* speecher;
private slots:
    void on_beginbtn_clicked();

    void on_closebtn_clicked();

    void timerEvent(QTimerEvent *tm);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("闹钟");
    this->setWindowIcon(QIcon("C:\\Users\\huahua\\Documents\\C++\\QTtxt\\Qtapp\\02demo\\alarm.png"));
    t =this->startTimer(1000);
    QDateTime sys_time = QDateTime::currentDateTime();
    ui->label->setText(sys_time.toString("yyyy-MM-dd hh:mm:ss"));
    ui->label->setAlignment(Qt::AlignCenter |Qt::AlignVCenter);
    ui->label->setFont(QFont("Arial",15));
    ui->closebtn->setEnabled(false);
    speecher = new QTextToSpeech(this);
}

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

void MainWindow::on_beginbtn_clicked()
{
    flag = 1;
    if(ui->lineEdit->text()==nullptr) {
        QMessageBox::information(this,"错误","未定时");
        return;
    }
    if(ui->textEdit->toPlainText()==nullptr) {
        QMessageBox::information(this,"错误","未输入播报信息");
        return;
    }
    ui->lineEdit->setEnabled(false);
    ui->textEdit->setEnabled(false);
    ui->beginbtn->setEnabled(false);
    ui->closebtn->setEnabled(true);
}

void MainWindow::on_closebtn_clicked()
{
    flag=0;
    ui->lineEdit->setEnabled(true);
    ui->textEdit->setEnabled(true);
    ui->beginbtn->setEnabled(true);
    ui->closebtn->setEnabled(false);
}

void MainWindow::timerEvent(QTimerEvent *tm)
{
    if(tm->timerId()==t) {
        QDateTime sys_time = QDateTime::currentDateTime();
        ui->label->setText(sys_time.toString("yyyy-MM-dd hh:mm:ss"));
        if(flag==1 && ui->label->text()==ui->lineEdit->text()) {
            speecher->say(ui->textEdit->toPlainText());
            qDebug()<<"播报成功";
            flag=0;
            ui->lineEdit->setEnabled(true);
            ui->textEdit->setEnabled(true);
            ui->beginbtn->setEnabled(true);
            ui->closebtn->setEnabled(false);
        }
    }
}

到了这里,关于QT事件处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT基础篇(11)QT5事件处理及实例

    1.鼠标事件及实例 QT5中有多种鼠标事件可以使用,常用的鼠标事件有: mousePressEvent :当鼠标按下时触发的事件。 mouseReleaseEvent :当鼠标释放时触发的事件。 mouseDoubleClickEvent :当鼠标双击时触发的事件。 mouseMoveEvent :当鼠标移动时触发的事件。 wheelEvent :当鼠标滚轮滚动时

    2024年01月19日
    浏览(34)
  • 【面试刷题】——Qt事件处理器

    在Qt中,事件处理器(Event Handler)是一种机制,用于捕获和处理各种类型的事件,包括用户输入事件、系统事件等。Qt框架提供了一个事件处理机制,允许你通过自定义事件处理器来响应和处理这些事件。 以下是关于Qt事件处理器的重要概念和用法: 事件处理器处理的基本单

    2024年02月07日
    浏览(31)
  • Python Qt6快速入门-事件处理

    Qt GUI应用程序的核心是 QApplication 类。 每个GUI应用程序都需要一个并且只有一个 QApplication 对象才能运行。 该对象包含应用程序的事件循环——控制所有用户与 GUI 交互的核心循环。

    2024年02月15日
    浏览(33)
  • DAY4,Qt(事件处理机制的使用,Qt中实现服务器的原理)

    ---chatser.h---头文件 ---chatser.cpp---函数实现文件 ---main.cpp---测试文件 结果展示---     

    2024年02月15日
    浏览(45)
  • Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

    Qt 入门实战教程(目录) 前驱文章: Qt Creator 创建 Qt 默认窗口程序(推荐) 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。 例如点击鼠标,按下按键。 在Qt中使用一个对象来表示一个事件,它继承自QEvent类。 如鼠标事件(例如点击

    2024年02月10日
    浏览(39)
  • Qt鼠标点击事件处理:按Escape键退出程序

    Qt 入门实战教程(目录) 首先,创建一个名称为QtKeyEscape的Qt默认的窗口程序。 参考 :Qt Creator 创建 Qt 默认窗口程序 打开Qt Creator 编辑 项目 Headers mainwindow.h 右键 class MainWindow Refactor Insert Virtual Function of Base Classes 如下图所示: 选择 QWidget keyPressEvent Insertion options: Insert defini

    2024年02月09日
    浏览(27)
  • Qt开发-鼠标事件

    个人认为,事件机制是Qt最难以理解且最为精妙的一部分。事件主要分为两种: 在与用户交互时发生 。比如按下鼠标(mousePressEvent),敲击键盘(keyPressEvent)等。 系统自动发生 ,比如计时器事件(timerEvent)等。 在发生事件时(比如说上面说的按下鼠标),就会产生一个

    2024年02月09日
    浏览(33)
  • Qt---对话框 事件处理 如何发布自己写的软件

    目录 一、对话框 1.1 消息对话框(QMessageBox) 1 消息对话框提供了一个模态的对话框,用来提示用户信息,或者询问用户问题并得到回答 2 基于属性版本的API 3 基于静态成员函数版本 4 对话框案例 1、ui界面 2、头文件 3、源文件 练习:完善登录框  form.h widget.h form.cpp main.cpp

    2024年02月09日
    浏览(28)
  • C++ Qt开发:Charts折线图绑定事件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 QCharts 折线图的常用方法及灵活运用。 在上一篇文章中笔者介绍了关于 QChart

    2024年02月04日
    浏览(36)
  • 【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.5 键盘事件

    本章要实现的整体效果如下: QEvent::KeyPress ​ 键盘按下时,触发该事件,它对应的子类是 QKeyEvent QEvent::KeyRelease ​ 键盘抬起时,触发该事件,它对应的子类是 QKeyEvent 本节通过两个案例来讲解这 2 个事件: 键盘按下、释放事件的基本使用 通过键盘的上下左右箭头,控制标签

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包