专业建站培训,苏州建设工程信息网站,交友软件,青岛 生物类网站建设文章目录 界面学生类序列化函数反序列化函数刷新所选择的下拉表值添加 界面 学生类
// 创建学生信息类
class studentInfo
{
public:QString id; // 学号QString name; // 学生姓名QString age; // 学生年龄// 重写QDataStream operator操作符… 文章目录 界面学生类序列化函数反序列化函数刷新所选择的下拉表值添加 界面 学生类
// 创建学生信息类
class studentInfo
{
public:QString id; // 学号QString name; // 学生姓名QString age; // 学生年龄// 重写QDataStream operator操作符做数据序列化操作friend QDataStream operator(QDataStream stream, const studentInfo student){// 将数据输入流对象中stream student.id;stream student.name;stream student.age;return stream;}// 重写QDataStream operator操作符做数据反序列化操作friend QDataStream operator(QDataStream stream, studentInfo student){// 从流对象中输出数据到学生结构体引用中stream student.id;stream student.name;stream student.age;return stream;}
};序列化函数 将其放入容器内方便便利每一个学生参数的值 QListstudentInfo list;studentInfo student;获取文本编辑的值读取到序列化文件中进行保存 //保存
void MainWindow::on_pushButton_clicked()
{studentInfo student;//序列化为二进制文件存在本地QFile file(QApplication::applicationDirPath()/student.st); //定义文件路径file.open(QIODevice::WriteOnly); //以只写模式打开QDataStream out(file); //定义数据流student.idui-m_Id-text();student.ageui-m_Age-text();student.nameui-m_Name-text();list.append(student);outlist;qDebug()list[0].id;file.close();qDebug()(QString(OK));ReShowCombox();
}刷新下拉表的值 void MainWindow::ReShowCombox()
{// 获取 studentInfo 对象if(list.size()0){ui-comboBox-addItem(list.last().name);}
}反序列化函数 读取文件的值添加到下拉列表中 void MainWindow::GetFile()
{studentInfo student;//反序列化本地二进制文件到程序中QFile file(QApplication::applicationDirPath()/student.st);//文件在程序运行目录下if(file.exists())//如果文件存在,则从文件读取数据{file.open(QIODevice::ReadOnly);QDataStream in(file);inlist;file.close();}// 获取 studentInfo 对象if(list.size()0){student.idlist.at(0).id;student.agelist.at(0).age;student.namelist.at(0).name;ui-m_Id-setText(student.id);ui-m_Age-setText(student.age);ui-m_Name-setText(student.name);for(int i0;ilist.size();i){ui-comboBox-addItem(list.at(i).name);}}}刷新所选择的下拉表值 连接信号与槽函数 connect(ui-comboBox, QOverloadint::of(QComboBox::currentIndexChanged), this, MainWindow::on_comboBox_currentIndexChanged);获取到当前的值 void MainWindow::on_comboBox_currentIndexChanged(int index)
{if (index 0) {// 获取当前选中项的 studentInfo 对象studentInfo student list.at(index);// 刷新其他控件的值ui-m_Id-setText(student.id);ui-m_Name-setText(student.name);ui-m_Age-setText(student.age);}
}添加
void MainWindow::on_pushButton_2_clicked()
{ui-m_Id-setText();ui-m_Name-setText();ui-m_Age-setText();}