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

思维导图

相关推荐
码农客栈2 小时前
qt QLineSeries详解
qt
HAH-HAH3 小时前
【蓝桥杯 2024 国 Java A】粉刷匠小蓝
c++·学习·数学·算法·职场和发展·蓝桥杯·组合数学
小吴同学·4 小时前
OPC Client第10讲:实现主界面;获取初始界面传来的所有配置信息config【C++读写Excel:xlnx;ODBC;缓冲区】
c++·wxwidgets
边疆.4 小时前
【C++】继承详解
开发语言·c++·继承
hweiyu005 小时前
C++设计模式,高级开发,算法原理实战,系统设计与实战(视频教程)
c++·算法·设计模式
十年编程老舅5 小时前
‌C++左值与右值:从基础概念到核心应用‌
linux·c++·右值引用·c++17·c++左值·c++右值·左值引用
John_ToDebug5 小时前
Chrome性能黑魔法:深入浅出PGO优化与实战指南
c++·chrome
和光同尘 、Y_____6 小时前
BRepMesh_IncrementalMesh 重构生效问题
c++·算法·图形渲染
起个名字费劲死了7 小时前
手眼标定之已知同名点对,求解转换RT,备份记录
c++·数码相机·机器人·几何学·手眼标定