首页 > 其他分享 >[QT]学生管理系统 分析

[QT]学生管理系统 分析

时间:2023-08-24 22:22:16浏览次数:24  
标签:QT 管理系统 信息 学生 点击 添加 信号 按钮

在连接信号与槽函数时,重要的是确保信号的声明与槽函数的定义能够被正确关联。

信号可以只声明不定义,槽声明之后必须定义其如何响应。

信号可以自定义,信号可以传参可以不传,但槽的接收参数必须要小于信号传出的参数,槽可以是一个宏定义的结果值(操作结果),可以是函数(槽响应操作后再自己产生结果)

项目创建选用的widget作为父类,可以作为不知道选择用对话框还是窗口时的一种通用选择。

主窗口采用QHBoxLayout水平布局,添加两个空间,构成左Groupbox跟右Groupbox。在create函数内部实现信号与槽的连接

QHBoxLayout *HBoxLayout = new QHBoxLayout(this);
QGroupBox *Left_Table_Box = createStuMess();
QGroupBox *Right_Table_Box = createMenu();

HBoxLayout->addWidget(Left_Table_Box,4);
HBoxLayout->addWidget(Right_Table_Box,2);

 构建学生信息面板,Left_Table_Box 中只包含一个 QTableWidget 表格控件,为了使表格尺寸自适应整个窗口,将表格添加到了 QHBoxLayout 布局工具中。

当用户点击某个单元格时,更新列表中显示的学生信息

当用户更改某个单元格内的内容时,调用 changeStuMess() 方法处理

将用户更改某个单元格内的内容时,同时还要更新表格中显示的学生信息

学生信息很容易被修改,直接双击选择学生信息面板某一个学生信息的某一个属性,就会进入编辑状态,这合理吗 cellChanged信号会在cell被点击了之后发射。 这信号函数体里都是空的

AutoHBoxLayout->addWidget(TableWidget);
box->setLayout(AutoHBoxLayout);

构建功能面板
最外层有 QGroupBox 分组框,内部用 QVBoxLayout 将整个区域分为上下两部分,分别嵌入 QListWidget 和 QGridLayout
QGridLayout 内包含添加、删除、保存、退出按钮和 1 个实现查找功能的单行输入框。

向输入框内输入学生信息查找,和直接在左侧学生信息面板点击,都是一样的,都会执行 findStuMess() 方法

点击添加按钮,执行 addStuBox() 方法

点击删除按钮,执行 delStuFun() 方法

点击退出按钮,关闭主窗口

点击保存按钮,执行 saveStuMess() 方法

 

____________________________________________________________________________

唯一难点在于点击添加按钮的新窗口设计上。

当点击添加按钮时,弹出添加学生信息的子窗口,这个新的窗口要如何进行封装。

当添加学生信息窗口关闭时,更新表格,同时清空列表中显示的学生信息

 这个页面是qdialog类,设置一个layout,类型取决于layout内部的布局,可以看见内部需要上下分割,因而是vlayout,vlayout再setlayout 上面是一个formlayout,下面是一个hlayout,上面添加labeltext跟lineedit即可,下面添加两个pushbotton。

当前的确认会以附加的方式向本地文本的末尾追加一个学生类信息,以DataStream二进制的形式写入。

从这个页面退出时会释放一个closebox信号,这个信号只有声明没有定义,但它不需要传出参数,所以不影响,只需要用它去触发另外的槽函数即可。

标签:QT,管理系统,信息,学生,点击,添加,信号,按钮
From: https://www.cnblogs.com/synapse331/p/17654890.html

相关文章

  • 关于qt qpa qws qml 以及qt 的环境变量 的理解
    qt的版本:  qt 与tslib库的关系。  关于QWS  关于qt5的环境变量的设置:   #Qt5.12.8exportQT_ROOT=/usr/libexportQT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/pluginsexportQT_QPA_PLATFORM=linuxfb:fb=/dev/fb0exportQT_QPA_FONTDIR=$QT_ROOT/fonts......
  • Qt模仿多标签页窗口拖拽操作
    本功能的实现主要依托于Qt的拖拽操作。从本文可以学到Qt的拖拽机制,自定义QMimeData的数据类型,和自定义的QGraphicsEffect效果。本文的视觉特效是应用于拖拽的时候指示当前鼠标的位置和拖拽结果新标签页会放置在当前窗口的第几个标签页之后。以下是窗口的效果图片,为了方便标签是用......
  • zbar:Qt调用zbar做条码识别
    需求:Qt开发的一个程序,妹子总是说需要条码识别功能,没办法,只能加上这个功能 zbar编译:https://gitee.com/vvvj/zbar-windows 主要代码:#include"zbar.h"usingnamespacezbar;voidheihei::tool_tiaoma(){//qDebug()<<"条码===begin=====";QImageimg;......
  • Qt中的键盘事件和鼠标事件
    Qt是一个流行的C++框架,用于开发跨平台的应用程序。在Qt中,键盘事件和鼠标事件是实现交互性和响应性的重要部分。Qt中定义了多种键盘事件和鼠标事件,这些事件可以用于处理用户与界面的交互。下面将详细介绍常用的键盘事件和鼠标事件及其用途。一、键盘事件1.QKeyEventQKeyEvent是......
  • 手动将QT项目打包成exe(手动打包,不是CMake自动打包)
    综述:仅记录QT项目打包的过程。构建工具:CMake主要流程:确保项目软件可以正常运行。使用release生成发布文件夹。将发布文件夹中的运行文件和依赖文件打包到另一个文件夹中。步骤:一、确保项目软件可以正常运行。点击左下角的运行按键确保软件正常运行(如果不能正常运行,下......
  • 千人千面:来看看这道简单的SQL面试题——设计一个学生成绩表
    今早上班后清理工位时,发现这张废纸,记录一下。 下面是这个简单的数据库应用面试题1、设计一个学生成绩表(DDL或者是逻辑结构)2、用一条SQ语句查询总成绩大于270分的学生3、用一条SQL语句查询出每门课都大于80分的学生 ......
  • Qt编写网易云界面 (5) -----专属定制和歌单实现
    今天主要完成专属定制和歌单部分,效果如图:UI部分:主要的qss:/*专属定制部分*/QLabel#lab_per{ font-family:"微软雅黑"; color:rgb(55,55,55); font-size:20px; font-weight:bold;}QLabel#lab_per2{ font-family:"微软雅黑"; color:rgb(159,159,159);}Q......
  • QTL
     QTL:是数量性状基因座:它指的是控制数量性状的基因在基因组中的位置。QTL实际上是一个抽象的概念。指的是存在与基因组中的某一位置,这个位置上的基因会影响某一数量性状的表达。QTL可以是一个简单的基因座,也可以是多个基因座的组合。......
  • QT数据库连接管理类
    使用单例管理整个项目的数据库连接。在QT中不同线程须使用不同的数据库实例。MySql有连接超时——超过设定(默认8小时)没有活动会关闭连接。一、头文件#pragmaonce#ifndefCSQLDATABASE_H#defineCSQLDATABASE_H#include<QtSql>#include<QString>#include<QMutex>#i......
  • 生信:一起学生信分析 RNA-Seq上游 篇
    一起学生信分析RNA-Seq上游篇参考文章:https://zhuanlan.zhihu.com/p/345896914RNA-Seq分析介绍转录组是指某特定细胞类型产生的所有转录本的集合。转录组研究能够从整体水平研究基因功能以及基因结构,揭示特定生物学过程以及疾病发生过程中的分子机理,已广泛应用于基础研究......