头文件—登录界面:
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
signals:
void jump();
private slots:
void Login_clicked();
void Out_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
头文件—运行界面:
#ifndef SECOND_H
#define SECOND_H
#include
#include
#include
#include
#include
#include
#include
#include
namespace Ui {
class Second;
}
class Second : public QWidget
{
Q_OBJECT
public:
explicit Second(QWidget *parent = nullptr);
~Second();
private:
Ui::Second *ui;
public slots:
void jumpSlot();
private slots:
void on_FontBtn_clicked();
void on_ColorBtn_clicked();
void on_OpenBtn_clicked();
void on_SaveBtn_clicked();
};
#endif // SECOND_H
main文件:
#include "widget.h"
#include "second.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
Second s;
QObject::connect(&w,&Widget::jump,&s,&Second::jumpSlot);
return a.exec();
}
功能文件—登陆界面
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//大图
ui->Lab->setPixmap(QPixmap(":/pictrue/KT.png"));
ui->Lab->setScaledContents(true);
//头像
ui->Headed->setPixmap(QPixmap(":/pictrue/wodepeizhenshi.png"));
ui->Headed->setScaledContents(true);
//账号
ui->Zhang->setPixmap(QPixmap(":/pictrue/userName.jpg"));
ui->Zhang->setScaledContents(true);
//密码
ui->Mi->setPixmap(QPixmap(":/pictrue/passwd.jpg"));
ui->Mi->setScaledContents(true);
//按键(确定)
connect(ui->Login,&QPushButton::clicked,this,&Widget::Login_clicked);
//按键(退出)
connect(ui->Out,&QPushButton::clicked,this,&Widget::Out_clicked);
//密码不可见
ui->Password->setEchoMode(QLineEdit::Password);
}
Widget::~Widget()
{
delete ui;
}
//登录键
void Widget::Login_clicked()
{
if(ui->Username->text()=="admin" && ui->Password->text()=="123456")//判断是否登陆成功
{
int res=QMessageBox::question(this,//父
"登录",//对话框标题
"是否确定登录");//对话框内容
if(res==QMessageBox::Yes)//二次确认
{
qDebug() << "登陆成功";
emit jump();//触发跳转信号
this->close();//关闭本窗口
}
}
else//登陆失败重新登录
{
qDebug() << "登陆失败";
ui->Username->clear();//清空账号
ui->Password->clear();//清空密码
}
}
void Widget::Out_clicked()
{
int res=QMessageBox::question(this,//父
"退出",//对话框标题
"是否确定退出");//对话框内容
if(res==QMessageBox::Yes)//二次确认
{
qDebug() << "退出成功";
this->close();//关闭本窗口
}
else
{
qDebug() << "请登录";
ui->Username->clear();//清空账号
ui->Password->clear();//清空密码
}
}
功能文件—运行界面
#include "second.h"
#include "ui_second.h"
Second::Second(QWidget *parent) :
QWidget(parent),
ui(new Ui::Second)
{
ui->setupUi(this);
}
Second::~Second()
{
delete ui;
}
void Second::jumpSlot()
{
this->show();
}
//字体
void Second::on_FontBtn_clicked()
{
bool ok;
QFont f=QFontDialog::getFont(&ok,//判断用户是否选中字体
QFont("宋体",8,10,false),//初始字体
this,//父对象
"字体");//对话框
if(ok)
{
ui->textEdit->setCurrentFont(f);
}
else
{
QMessageBox::information(this,
"提示",//取消的提示
"未发生改动");
}
}
//字体颜色/背景色
void Second::on_ColorBtn_clicked()
{
QColor c=QColorDialog::getColor(QColor(255,255,10),//初始颜色
this,//父对象
"颜色");//对话框
if(c.isValid())
{
//ui->textEdit->setTextBackgroundColor(c);//文本背景色
ui->textEdit->setTextColor(c);//文本前景色
}
else
{
QMessageBox::information(this,
"取消",//取消的提示
"未发生改动");
}
}
//打开
void Second::on_OpenBtn_clicked()
{
QString fileName=QFileDialog::getOpenFileName(this,//父对象
"打开文件",//弹窗标题
"./",//初始路径
"All(*.*);; *.png *.jpg *.bmp");//筛选种类
QFile file(fileName);//保存文件路径
if(!file.exists())//判断路径是否存在
{
return;
}
if(!file.open(QFile::ReadWrite))//打开文件并判断文件是否打开成功
{
return;
}
QByteArray buf=file.readAll();//提取文件内容
file.close();//关闭文件
ui->textEdit->setText(QString::fromLocal8Bit(buf));//将内容写到textEdit中
}
//保存
void Second::on_SaveBtn_clicked()
{
QString fileName=QFileDialog::getSaveFileName(this);//选择保存路径
QFile file(fileName);//保存文件路径
if(!file.exists())//判断路径是否存在
{
return;
}
if(!file.open(QFile::ReadWrite))//打开文件并判断文件是否打开成功
{
return;
}
QString buf=ui->textEdit->toPlainText();//将内容从textEdit中读取
file.write(buf.toLocal8Bit());//写入文件中
file.close();//关闭文件
}