2024.9.10

作业

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QMouseEvent>
#include<QTimer>            //定时器类
#include<QTime>            //时间类
#include<QTimerEvent>       //定时器事件类
#include<QDateTime>         //日期时间类
#include <QDebug>
#include <QtTextToSpeech>
#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;
private:
    Ui::Widget *ui;
    QPoint temp;        //
    QString linetext;  //用于设定时间
    QString textedit; //用于播报
    int tid = 0;
    QLabel *lab = new QLabel(this);                  //显示的时间
    QPushButton *btn1 = new QPushButton("启动",this); //确认
    QPushButton *btn2 = new QPushButton("取消",this); //取消
    QLineEdit *ledt = new QLineEdit(this);           //输入的时间
    QTextEdit *txt = new QTextEdit(this);           //提示语
    QTextToSpeech *speecher = new QTextToSpeech(this);;
    void timerEvent(QTimerEvent *event)override;
public:signals:
    //void out();
private slots:
    void btn1_slots();
    void btn2_slots();
};
#endif // WIDGET_H

主函数

#include "widget.h"

#include <QApplication>

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

源文件

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

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

    this->setWindowFlag(Qt::FramelessWindowHint);       //去除控件头部
    this->setFixedSize(800,800);                    //设置ui界面大小

    //设置各个组件的大小
    btn1->resize(150,50);
    btn2->resize(150,50);
    ledt->resize(300,200);
    lab->resize(300,200);
    txt->resize(700,350);

    //设置各个组件的位置
    ledt->move(450,100);
    btn1->move(ledt->x(),ledt->y()+ledt->height()+20);
    btn2->move(btn1->x()+btn1->width(),btn1->y());
    lab->move(50,100);
    txt->move(50,420);

    //设置组件样式
    lab->setStyleSheet("background-color:yellow;");
    btn2->setEnabled(false);

    tid = this->startTimer(1000);

    connect(btn1,&QPushButton::clicked,this,&Widget::btn1_slots);
    connect(btn2,&QPushButton::clicked,this,&Widget::btn2_slots);
    //connect(this,&Widget::out,this,&Widget::btn2_slots);
}

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

void Widget::mousePressEvent(QMouseEvent *event)
{
    temp = event->globalPos() - this->pos();
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
    this->move(event->globalPos() - temp);
}
void Widget::timerEvent(QTimerEvent *event)
{
    if(event->timerId() == tid)
    {
        lab->setText(QTime::currentTime().toString("hh:mm:ss"));
        lab->setAlignment(Qt::AlignCenter);
    }
    if(lab->text() == linetext)
    {
        speecher->say(textedit);
        btn2->setEnabled(false);
        btn1->setEnabled(true);
        txt->setEnabled(true);
        ledt->setEnabled(true);
        txt->clear();
        ledt->clear();
        linetext.clear();
        textedit.clear();
        QMessageBox::warning(this,"警告","起床!!!",QMessageBox::Ok);
    }
}

void Widget::btn1_slots()
{
    btn1->setEnabled(false);
    btn2->setEnabled(true);
    linetext  = ledt->text();       //获取定时时间信息
    textedit = txt->toPlainText();  //获取播报信息
    txt->setEnabled(false);
    ledt->setEnabled(false);
}

void Widget::btn2_slots()
{
    btn2->setEnabled(false);
    btn1->setEnabled(true);
    txt->setEnabled(true);
    ledt->setEnabled(true);
    txt->clear();
    ledt->clear();
    linetext.clear();
    textedit.clear();
}

Kali Linux是一个专门为安全评估和渗透测试设计的操作系统,不断更新版本以提供最新的工具和服务。Kali 2024.1的安装过程类似于其他Linux发行版,但包含一些特定的安全软件包。 以下是基本的步骤: 1. **下载ISO镜像**:首先,访问Kali Linux官方网站(https://www.kali.org/downloads/) 下载适合你硬件架构的最新ISO镜像文件。 2. **刻录USB或创建虚拟机**:你可以使用如Rufus(Windows)、Etcher(跨平台)、UNetbootin等工具将ISO映像刻录到USB闪存驱动器,或者在虚拟化平台上(如VirtualBox、VMware等)创建一个新的虚拟机,并选择从ISO启动。 3. **引导安装**:重启电脑并进入BIOS设置,确保优先加载USB或CD/DVD。按照提示引导至安装界面。 4. **开始安装**:选择语言并接受许可协议,然后选择安装类型,通常推荐“高级”选项以便自定义安装。 5. **分区硬盘**:分配硬盘空间给根分区和交换分区,以及根据需要安装的LXDE、GNOME或其他桌面环境。 6. **配置网络**:选择网络连接的方式,如果无线可用,建议配置自动获取IP地址。 7. **用户名和密码设置**:创建管理员账户,设置登录密码。 8. **安装组件**:在安装过程中可以选择安装所需的安全工具包,包括但不限于Metasploit Framework、Nmap、Wireshark等。 9. **启动修复**:完成安装后,首次启动可能会有启动修复程序运行,这是正常现象。 10. **个性化设置**:安装完成后,你可以根据个人喜好调整防火墙、更新源等设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值