自由发挥一个应用程序的登录界面,使用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;
}
思维导图
