20230516(1)

1> 将系统给定的工程文件相关代码全部进行注释

头文件

#ifndef WIDGET_H
#define WIDGET_H

//防止文件重复包含
#include <QMainWindow> //父类的头文件

QT_BEGIN_NAMESPACE
namespace Ui { class widget; } // 命名空间的声明,ui界面生成的头文件中的命名空间
QT_END_NAMESPACE

class widget : public QMainWindow //自定义的类,继承自QMainWindow类
{
    Q_OBJECT //处理信号与槽的元对象

public:
    widget(QWidget *parent = nullptr);//构造函数的声明
    ~widget(); //析构函数的声明

private:
    Ui::widget *ui;//指向ui界面的指针,如果使用拖拽后的组件,需要使用该指针找到
};
#endif // WIDGET_H

源文件

#include "widget.h" //包含自定义的头文件
#include "ui_widget.h" //包含ui界面的头文件

widget::widget(QWidget *parent) //构造函数的实现
    : QMainWindow(parent)    //调用父类的构造函数
    , ui(new Ui::widget)  //给指针成员初始化空间
{
    ui->setupUi(this);  //调用ui界面中的设置界面函数
}

widget::~widget() //析构函数的定义
{
    delete ui;//将类中指针成员空间释放
}

测试文件

#include "widget.h"//引入自定义头文件

#include <QApplication>  //引入应用程序的头文件

int main(int argc, char *argv[])//主函数
{
    QApplication a(argc, argv);  //实例化应用程序的对象
    widget w;   //使用自定义对象在栈区实例化一个对象
    w.show();   //调用show方法将界面显示出来
    return a.exec(); //阻塞等待界面处理:等待信号与槽、等待用户操作界面、等待事件发生
}

2> 将登录框的两个按钮进行实现,登录按钮需要手动连接自定义的槽函数,取消按钮右键转到

对于登录按钮对应的槽函数中实现:判断输入的账号是否等于"admin",密码是否为“123456”,如果匹配成功,则输出登录成功后关闭界面

如果匹配失败,输出账号和密码不匹配,请重新输入,并将密码框内容清空

对于取消按钮,在对应的槽函数中,关闭整个界面即可

源文件

#include "widget.h" //引入自定义的头文件

#include <QApplication> //引入应用程序的头文件

int main(int argc, char *argv[])    //主函数
{
    QApplication a(argc, argv); //实例化应用程序的对象
    Widget w;   //用自定义对象在栈区实例化一个对象
    w.show();   //调用show将界面显示出来
    return a.exec();    //阻塞等待界面处理
}

头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QDebug>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }  //命名空间的声明
QT_END_NAMESPACE

class Widget : public QWidget   //自定义的类,用来继承QMainWindow类
{
    Q_OBJECT                    //处理信号与槽的元对象

signals:
    void my_signal();

private slots:
    void my_slot();


    void on_btn3_clicked();

public:
    Widget(QWidget *parent = nullptr);  //声明构造函数
    ~Widget();  //声明析构函数

private:
    Ui::Widget *ui; //指向ui界面的指针
};


#endif // WIDGET_H

测试文件

#include "widget.h" //包含自定义的头文件
#include "ui_widget.h"  //包含ui界面的头文件

Widget::Widget(QWidget *parent) //构造函数的实现
    : QWidget(parent)   //调用父类的构造函数
    , ui(new Ui::Widget)    //给指针成员初始化空间
{
    ui->setupUi(this);  //调用ui界面的设置界面函数

    //设置固定尺寸
 //   this->setFixedSize(300,400);

    //更改窗口标题
    this->setWindowTitle("QQ");

    //更改窗口图标
    this->setWindowIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\QQ.png"));

    ui->btn1->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglu.png"));
    ui->btn2->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglu.png"));
    ui->btn3->setIcon(QIcon("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\quxiao.png"));

    ui->edt->setPlaceholderText("账号");
    ui->edt1->setEchoMode(QLineEdit::Password);

    ui->label1->setScaledContents(true);
    ui->label2->setScaledContents(true);
    ui->label1->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\zhanghao.png"));
    ui->label2->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\denglumima.png"));

    ui->label->setScaledContents(true);
    ui->label->setPixmap(QPixmap("D:\\ProgramDate\\QT\\DAY8\\516work\\icon\\logo.png"));

    connect(ui->btn2,SIGNAL(clicked()),this,SLOT(my_slot()));

}

Widget::~Widget()   //定义析构函数
{
    delete ui;  //释放类中的指针成员空间
}

void Widget::my_slot()
{
    QString count = ui->edt->text();
    QString passwd = ui->edt1->text();

    if(count == "admin" && passwd == "123456")
    {
        qDebug() << "login success!";
        close();
    }
    else
    {
        qDebug() << "账号和密码不匹配,请重新输入!";
        ui->edt1->clear();
        ui->edt->clear();
    }


}




void Widget::on_btn3_clicked()
{
    close();
}

ui界面

 运行结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤进行操作: 1. 创建一个空字典 `result_dict` 和一个空集合 `time_set`,用于存储最终结果和已经出现的时间标签。 2. 遍历原始列表中的每一个字典,如果 `time_tag` 不在 `time_set` 中,则将该字典加入 `result_dict` 中,并将 `time_tag` 加入 `time_set` 中。 3. 如果 `time_tag` 已经在 `time_set` 中,比较 `create_time` 的大小。如果当前字典的 `create_time` 大于 `result_dict` 中对应时间标签的字典的 `create_time`,则更新 `result_dict` 中对应的字典。 4. 最后,将 `result_dict` 中的值转化为列表返回即可。 以下是代码实现: ```python original_list = [{'time_tag': '20230514', 'ap_24': ' 8', 'create_time': '20230516003000'}, {'time_tag': '20230515', 'ap_24': ' 6', 'create_time': '20230516003000'}, {'time_tag': '20230516', 'ap_24': '-1', 'create_time': '20230516003000'}, {'time_tag': '20230516', 'ap_24': ' 6', 'create_time': '20230516033000'}, {'time_tag': '20230516', 'ap_24': ' 7', 'create_time': '20230516063000'}, {'time_tag': '20230516', 'ap_24': ' 8', 'create_time': '20230516093000'}, {'time_tag': '20230516', 'ap_24': ' 9', 'create_time': '20230516123000'}, {'time_tag': '20230418', 'ap_24': '13', 'create_time': '20230517003000'}] result_dict = {} time_set = set() for d in original_list: if d['time_tag'] not in time_set: result_dict[d['time_tag']] = d time_set.add(d['time_tag']) else: if d['create_time'] > result_dict[d['time_tag']]['create_time']: result_dict[d['time_tag']] = d result_list = list(result_dict.values()) print(result_list) ``` 输出结果为: ``` [{'time_tag': '20230514', 'ap_24': ' 8', 'create_time': '20230516003000'}, {'time_tag': '20230515', 'ap_24': ' 6', 'create_time': '20230516003000'}, {'time_tag': '20230516', 'ap_24': ' 9', 'create_time': '20230516123000'}, {'time_tag': '20230418', 'ap_24': '13', 'create_time': '20230517003000'}] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值