7.27 Qt

2023-10-31

制作简易小闹钟

Timer.pro
QT       += core gui texttospeech

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked 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 it uses 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.0

SOURCES += \
    main.cpp \
    widget.cpp

HEADERS += \
    widget.h

FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTimerEvent>   //定时器事件头文件
#include <QTimer>
#include <QtTextToSpeech>
#include <QTime>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QPushButton>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

    void timerEvent(QTimerEvent *e);  //要重写定时器事件处理时间

private slots:
    void on_OnBtn_clicked();

    void on_OffBtn_clicked();

private:
    Ui::Widget *ui;

    QTimer *t1;

    //基于事件处理的定时器id
    int tId;

    QTextToSpeech *speech;


};
#endif // WIDGET_H
main.cpp
#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"

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

    this->setWindowTitle("---迷你闹钟---");

    speech=new QTextToSpeech;

}

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


//启动按钮处理事件
void Widget::on_OnBtn_clicked()
{
    if(ui->OnBtn->text()=="ON")
    {
        //启动一个定时器
        tId=startTimer(1000);   //启动一个定时器,每隔1000毫秒会自动执行timeEvent函数
        ui->OnBtn->setEnabled(false);
        ui->timeEdit->setEnabled(false);
        ui->textEdit->setEnabled(false);
        ui->currentLab->setEnabled(false);
    }

}

//停止按钮处理事件
void Widget::on_OffBtn_clicked()
{
    if(ui->OffBtn->text()=="OFF")
    {
         //关闭一个定时器
        this->killTimer(tId);
        ui->OnBtn->setEnabled(true);
        ui->OffBtn->setEnabled(false);
        ui->timeEdit->setEnabled(true);
        ui->textEdit->setEnabled(true);
        ui->timeEdit->clear();
    }
}

//定时器事件处理函数定义
void Widget::timerEvent(QTimerEvent *e)
{
    //判断是哪个定时器到位
    if(e->timerId()==tId)
    {
        //获取系统时间
        QTime sys_time=QTime::currentTime();  //QTime类对象

        //将时间转换成字符串
        QString t=sys_time.toString("hh-mm-ss");   //时分秒,都是两位数

        //将字符串展示到ui界面
        ui->currentLab->setText(t);
        ui->currentLab->setAlignment(Qt::AlignCenter);   //将时间放在中间
        if(ui->timeEdit->text()==ui->currentLab->text())
        {
            QString text=ui->textEdit->toPlainText();
            speech->say(text);
        }
    }

}


思维导图

 

 

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

7.27 Qt 的相关文章

  • 如何在 QT 中绘制点?

    我正在用 QT 用 C 编写一个应用程序 其中有 n 个点并计算它的凸包 然而 一旦计算出来 我不知道如何绘制点并绘制船体的边界 制作菜单按钮等很简单 但我不确定我是否知道执行此操作的工具 你怎么做到这一点 图形视图 addEllipse
  • 如何使 Python、QT 和 Webkit 在无头服务器上工作?

    我有 Debian Linux 服务器 我用它来做各种事情 我希望它能够完成一些我需要定期完成的网络抓取工作 这段代码可以是在这里找到 http bit ly QeqvzX import sys from PyQt4 QtGui impor
  • 用 C++/Qt 编写的程序中的 RTF / doc / docx 文本提取

    我正在写一些程序Qt https en wikipedia org wiki Qt 28software 29 C 我需要从中读取文本微软Word https en wikipedia org wiki Microsoft Word RTF
  • QComboBox 下拉项边距

    我想设计我的风格QComboBox为下拉项目留出边距 现在是这样的 我想要这样的东西 我尝试过 QComboBox QAbstractItemView item margin 3px 但它不起作用 你能帮我解决这个问题吗 您想在项目之间设置
  • 使用 OpenGL 渲染 QImage

    与我相关的其他问题 https stackoverflow com questions 20126354 render qimage from sooffscreenrenderer in qglwidget 我认为更核心的问题是 如何渲染
  • QML 中可重用的字体属性[重复]

    这个问题在这里已经有答案了 在 QML 中 我希望能够定义一组字体属性以进行简单的语义重用 例如 代替 Text text This is a header font family Encode Sans weight Font Black
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • PyQt4 QPalette 不工作

    btn QtGui QPushButton Button self palettes btn palette palettes setColor btn backgroundRole QtCore Qt green btn setPalet
  • 如何doxygen注释Qt属性?

    我想将 Doxygen 注释附加到我的 Q PROPERTY 例如 song h class Song public QObject Q OBJECT private Q PROPERTY QString title READ title
  • Qt中用于线程间通信的类设计

    问题陈述 用相机跟踪物体并相应地移动相机的方位角和仰角 Process 相机获取物体的图像 处理相机的每一帧以查找物体 应该被跟踪 并将每帧中生成的信息传递给机械设备 万向节 以平移和倾斜方式移动摄像机 Design 主 Gui 在一个线程
  • 如何将自定义 Qt 类型与 QML 信号一起使用?

    我在 Qt 5 2 qml 应用程序中创建了一个自定义类型 class Setting public QObject Q OBJECT Q PROPERTY QString key READ key WRITE setKey Q PROPE
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • QFileSystemModel setRootPath

    我正在尝试创建一个 Qt 应用程序来显示文件夹 Mac OS 中的 Users 文件夹 的内容 这是代码 QFileSystemModel dirModel new QFileSystemModel dirModel gt setRootP
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • 如何将 QFile 与 std::iostream 一起使用?

    是否可以像 std iostream 一样使用 QFile 我很确定那里一定有一个包装纸 问题是在哪里 我有另一个库 它需要 std istream 作为输入参数 但在我的程序中 此时我只有一个 QFile 我使用以下代码提出了自己的解决方
  • 使 QLabel 的像素图透明

    我有一个带有 QLabel 和像素图的主窗口 我想让它透明 或不那么不透明 我正在使用下面的代码 ui gt label gt setAttribute Qt WA TranslucentBackground ui gt label gt
  • Qt:将数字转换为 QString、QVariant 或 QString::number 哪个更好

    我只是好奇 比方说 我需要在控制台中输出一个数字 代码是 include
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo

随机推荐

  • 春招Java后端开发面试 2021-10-8

    春招Java后端开发面试 春招Java后端开发面试总结包含了JavaOOP Java集合容器 Java异常 并发编程 Java反射 Java序列化 JVM Redis Spring MVC MyBatis MySQL数据库 消息中间件MQ
  • 常用linux命令记录

    常用linux命令记录 1 常用linux命令基本使用列表 序号 命令 英文 作用 01 ls list 查看当前文件夹的内容 02 pwd print work directory 查看当前所在文件夹 03 cd 目录名 change d
  • 高云FPGA系列教程(5):ARM点灯工程设计

    文章目录 toc 1 ARM核定制 2 ARM核程序设计 3 ARM程序烧写 4 工程下载 本文是高云FPGA系列教程的第5篇文章 前面几篇笔记都是介绍的高云GW1NSR 4C FPGA部分的使用 本篇文章介绍片上ARM Cortex M3
  • MES解决方案 附下载地址

    MES Manufacturing Execution System 即制造企业生产过程执行系统 是一套面向制造企业车间执行层的生产信息化管理系统 是美国AMR公司在90年代初提出的 旨在加强MRP计划的执行功能 把MRP计划同车间作业现场
  • 从源码角度看R语言的format函数

    先提一个问题 请问下面最后的两个逻辑语句的判断 结果是什么 x lt c 1234567 8 12 12345 x11 lt format x scientific FALSE x12 lt format x scientific TRUE
  • 安装多版本node

    一 安装多版本node的原因 在项目开发过程中 不同项目使用的nodejs版本不同 有时会因为node版本过高或太低 导致报错 解决方式 利用nvm进行管理 本文使用此种方式 配置环境变量 如理解环境变量可自行配置 二 利用nvm进行管理
  • router-link标签Cannot read property '$route' of undefined"报错解决方法

    报错代码 div class card mb 3 px 3 div
  • vue渲染页面的流程_Vue中DOM渲染的过程

    vue中dom渲染过程 1 响应式 监听data属性的getter setter 2 模板编译 模板到render函数再到vnode 模板不是html 有指令 插值 js表达式 能够实现循环 判断 html是标签语言 只有js才能实现循环判
  • vision transformer

    一 网络构建 import torch from torch import nn from functools import partial 1 patch embedding img size 224 输入图像的宽高 patch size
  • win10进入安全模式的方法(F8不管用/开不开机)

    win10默认不能进入安全模式 这时候开机黑屏怎么办 下面介绍强制进入安全模式的方法 1 关机情况下 按开机键开机 等到出现徽标 下图 这时候长按开机键强制关机 2 再次开机 出现徽标 再次强制强制关机 重复三次 直到出现 正在准备自动修复
  • 【vscode】 VsCode 代码片段

    1 打开Vscode 文件 gt 首选项 gt 用户片段 或用快捷键ctrl shift p输入snip 2 点击用户片段 选择html json或者新建全局代码片段文件 3 随后会打开一个json文件设置 可直接将以下代码粘贴复制到自己的
  • 微信小程序地理位置API使用流程

    地理位置接口使用具体流程 开发者如需在最新版本发布后使用地理位置相关接口 除需完成接口权限开通外 还需在 app json 或ext json 配置环节 具体如下 以wx chooseLocation为例 1 接口权限开通 以下 8 个接口
  • 从mysql数据库中读取二进制文件_MySQL-主从复制:基于二进制文件复制详解

    前言 主从复制是指把一个MySQL的数据库服务器作为主服务器 master 然后把master的数据复制到一个或者多个MySQL数据库服务器作为从服务器 slave 从master到slave的复制一般是异步复制 所以从服务器的复制可以随时
  • 在idea中如何导入JDBC驱动

    1 左上角点击File 选中project Structure 2 找到modules Dependencies 号 JARS 3 选择文件夹找到驱动并导入应用保存即可
  • c/c++数组的用法

    三键三连 三键三连 三键三连 编程找到一个数组中的最大元素和最小元素 输入输出 输入 n n lt 100 n个元素的值 输出 最大元素 最小元素 include
  • 字符串分割函数--strtok与strsep

    在 c 中 字符串分割函数主要有两种 一是strtok函数 另一个就是strsep函数 下面我们对这两个函数作一个详细解释说明 1 strtok 原形 char strtok char str const char delim 功能 分解字
  • npm install 安装软件,出现 operation not permitted, mkdir

    解决办法 在开始菜单栏里打开cmd的时 右击选择 以管理员身份运行 然后再在打开的cmd里运动install就没问题了
  • Active Directory(活动目录) 域服务

    域环境 域环境是一种虚拟的环境 不受物理环境的限制 将计算机逻辑的组织到一起的集中管理 工作组 网络资源少 分散管理 适合小型网络 Windows域 适合大型网络 活动目录 活动目录是Windows的一种服务 是一个目录数据库 集中存储着整
  • 【小程序】input输入双向数据绑定

    小程序中 input标签中的数据为单向绑定
  • 7.27 Qt

    制作简易小闹钟 Timer pro QT core gui texttospeech greaterThan QT MAJOR VERSION 4 QT widgets CONFIG c 11 The following define ma