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

思维导图

相关推荐
云泽80827 分钟前
C++11 核心特性全解:列表初始化、右值引用与移动语义实战
开发语言·c++
AI进化营-智能译站1 小时前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
Morwit1 小时前
QML组件之间的通信方案(暴露子组件)
c++·qt·职场和发展
qeen872 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
图码2 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
handler012 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
zhouwy1132 小时前
Linux进程与线程编程详解
linux·c++
A7bert7773 小时前
【YOLOv8pose部署至RDK X5】模型训练→转换bin→Sunrise 5部署
c++·python·深度学习·yolo·目标检测
li1670902703 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
王老师青少年编程4 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【贪心与二分判定】:数列分段 Section II
c++·算法·贪心·csp·信奥赛·二分判定·数列分段 section ii