QTday1作业

自由发挥一个应用程序的登录界面,使用ui界面实现,基本功能都需要实现

cpp 复制代码
#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    this->resize(400,560);
    QLabel *lab = new QLabel(this);
    lab->resize(400,150);
    QMovie *mv =new QMovie("D:/缓存/pictrue/pictrue/qq2.gif");
    lab->setMovie(mv);
    mv->start();
    lab->setScaledContents(true);

    QLabel *lab3 = new QLabel(this);
    lab3->move(160,130);
    lab3->resize(60,60);
    lab3->setPixmap(QPixmap("D:/缓存/pictrue/pictrue/qq.png"));
    lab3->setScaledContents(true);
    lab3->setStyleSheet("border-radius:50px");

    QLabel *lab1 = new QLabel(this);
    lab1->move(80,250);
    lab1->resize(50,20);
    lab1->setText("账号");
    lab1->setStyleSheet("background-color:yellow");
    QLabel *lab2 = new QLabel(this);
    lab2->move(80,300);
    lab2->resize(50,20);
    lab2->setText("密码");
    lab2->setStyleSheet("background-color:yellow");


    QLineEdit *edit2 = new QLineEdit(this);
    edit2->move(130,250);
    edit2->setPlaceholderText("QQ号码/手机/邮箱");
    QLineEdit *edit1 = new QLineEdit(this);
    edit1->setEchoMode(QLineEdit::Password);
    edit1->move(130,300);
    edit1->setPlaceholderText("密码");


    //登录/取消按钮
    QPushButton *btn1 = new QPushButton("登录",this);
    btn1->move(100,400);
    btn1->resize(60,40);

    QPushButton *btn2 = new QPushButton("取消",this);
    //移动
    btn2->move(220,400);
    btn2->resize(60,40);


}

MyWidget::~MyWidget()
{
}

考试编程题

cpp 复制代码
#include <iostream>
#include <cstring>

class MyString {
private:
    char* data;
    size_t len;
public:
    MyString() : data(nullptr), len(0) {}
    MyString(const char* str)
    {
        if (str == nullptr)
        {
            data = nullptr;
            len = 0;
        } else
        {
            len = strlen(str);
            data = new char[len + 1];
            strcpy(data, str);
        }
    }
    MyString(const MyString &other)
    {
        len = other.len;
        if (other.data == nullptr)
        {
            data = nullptr;
        } else
        {
            data = new char[len + 1];
            strcpy(data, other.data);
        }
    }
    ~MyString()
    {
        delete[] data;
    }

    MyString& operator=(const MyString& other)
    {
        if (this != &other)
        {
            delete[] data;
            len = other.len;
            if (other.data == nullptr)
            {
                data = nullptr;
            } else
            {
                data = new char[len + 1];
                strcpy(data, other.data);
            }
        }
        return *this;
    }

    size_t getLength() const
    {
        return len;
    }

    MyString operator+(const MyString& other) const
    {
        MyString temp;
        temp.len = len + other.len;
        if (temp.len == 0)
        {
            temp.data = nullptr;
            return temp;
        }

        temp.data = new char[temp.len + 1];
        if (data != nullptr)
        {
            strcpy(temp.data, data);
        }
        if (other.data != nullptr)
        {
            strcat(temp.data, other.data);
        }
        return temp;
    }

    bool operator>(const MyString& other) const
    {
        if (data == nullptr && other.data == nullptr)
        {
            return false;
        } else if (data == nullptr)
        {
            return false;
        } else if (other.data == nullptr)
        {
            return true;
        }
        return strcmp(data, other.data) > 0;
    }

    friend std::ostream &operator<<(std::ostream& os, const MyString &str)
    {
        if (str.data != nullptr)
        {
            os << str.data;
        }
        return os;
    }

    friend std::istream& operator>>(std::istream &is, MyString &str)
    {
        char buffer[1024];
        is >> buffer;
        delete[] str.data;
        str.len = strlen(buffer);
        if (str.len == 0)
        {
            str.data = nullptr;
        } else
        {
            str.data = new char[str.len + 1];
            strcpy(str.data, buffer);
        }
        return is;
    }
};

int main() {
    MyString s1("Hello");
    std::cout << "s1: " << s1 << " len: " << s1.getLength() << std::endl;

    MyString s2 = s1;
    std::cout << "s2: " << s2 << std::endl;

    MyString s3;
    s3 = s1;
    std::cout << "s3: " << s3 << std::endl;

    MyString s4 = s1 + MyString(" World");
    std::cout << "s4 : " << s4 << " len: " << s4.getLength() << std::endl;

    std::cout << "s1 > s4? " << (s1 > s4 ? "Yes" : "No") << std::endl;

    MyString s5;
    std::cout << "please s5: ";
    std::cin >> s5;
    std::cout << "s5: " << s5 << " len: " << s5.getLength() << std::endl;

    return 0;
}

思维导图

相关推荐
linx29510 分钟前
第七章 · 标准库容器、算法与 ranges
c语言·开发语言·数据结构·c++·算法
钓鱼的肝15 分钟前
csp-j-s总结(4)
c++·经验分享·笔记·算法
别动我齐刘海37 分钟前
ROS2 Jazzy + C++ 实战路线——基础学习1
c++·vscode·python·ubuntu·机器学习·自动驾驶·github
j7~1 小时前
【Linux网络加餐】(篇七)网络版计算器(中):协议落地、报文分隔与完整链路
linux·c++·网络编程·tcp·报文分割·网络计算器·协议落地
青少儿编程课堂1 小时前
多源最短路与最小环(Floyd 算法图论解析)
c++·python·算法·bfs·信息学竞赛
6Hzlia1 小时前
【Classic 150 刷题计划】 LeetCode 228. 汇总区间 | C++ 锚点游标与断点检测法
c++·算法·leetcode
Severus_black1 小时前
【C++初阶】模板初阶——为何C++能和C语言拉开差距?
c++
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
小此方3 小时前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
GG-_-Bond12 小时前
9.1 kv存储resp协议模拟面试
c++