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;
}

思维导图

相关推荐
charlie1145141911 小时前
Cinux: 为大内核铺路
开发语言·c++·操作系统·现代c++
米罗篮3 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
肖爱Kun3 小时前
C++设计策略模式
开发语言·c++·策略模式
炸膛坦客4 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
cpp_25015 小时前
P10098 [ROIR 2023] 地铁建设 (Day 2)
数据结构·c++·算法·贪心·二分答案·洛谷题解
sycmancia6 小时前
Qt——多线程中的信号与槽(二)
jvm·qt
hehelm6 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
灵晔君7 小时前
【C++】二叉搜索树
开发语言·c++
鱼子星_7 小时前
【C++】内存管理:内存分布,new/delete的使用及细节处理,new/delete的底层,定位new表达式
开发语言·c++·笔记
鱼子星_8 小时前
【C++】string(上):string的基本使用
c++·笔记·字符串