首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python GUI项目实战(七)学生信息的修改、删除和保存

前言 上一节,我们实现了添加学生信息的功能,在明细窗体中输入的学生信息并添加到总列表中,与此同时在主窗体的表格中能自动刷新添加的数据。...# 反馈信号给主窗体 self.userinfo = 1 # 关闭窗体 self.destroy() 然后我们在主窗体的代码中的update_student方法中继续完善,接收明细窗体的明细信号。...更新表格 删除操作执行完成后,TreeView中的表格需要立刻更新。由于删除操作直接是在主窗体中进行的,就不需要和前面一样再设置反馈信号了,直接调用载入全部学生信息的方法即可。...我们在主窗体中定义close_window方法: def close_window(self): # 给用户提示:是否要保存数据 choose = askyesno("关闭前提醒","关闭窗体前是否要将修改写入文件...如果我们直接在每个学生信息数据项后添加换行符,这也是不可取的,因为在原始列表中已经有了换行符。 (2)解决方法: 统一把原始数据项中的换行符都去掉,再添加换行符。

3.7K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WEB功能测试说明

    如对于要求输入整型、 符点型变量的项中,输入空格,既不是空值,又不是标准输入。 20、输入法半角全角检查:在输入信息项中,输入半角或全角的信息,查看系统怎样处理。...如对于要 求输入符点型数据的项中,输入全角的小数点(“。”或“.”。如4.5)。输入全角的空格等。...假设系统数据计算不对,那么功能測试肯定是通只是 的。 数据检查依据不同的系统,方法不同。...· 窗体中的数据内容是否能用鼠标、功能键、方向键和键盘訪问? · 当被覆盖并又一次调用后。窗体是否能正确地再生? · 须要时是否能使用全部窗体相关的功能?...· 图形模式的数据项(如滚动栏)是否正常工作? · 是否可以识别非法数据? · 的数据是否输入消息可理解? 版权声明:本文博主原创文章,博客,未经同意不得转载。

    1.2K41

    C#项目实战练习:做自己的QQ

    主要涉及了以下内容: Form窗体关键属性、方法和事件的应用; 如何触发窗体和控件的时间; ListView控件和ImageList组件的结合使用; 数据库及数据表的建立与管理; 使用C#操作SQL server...便于测试   为了方便测试登录窗体,实现点击安全登陆按钮可以代开主窗体的操作,我们应该事先在数据库中添加一条用户数据。   这样我们输入账号即可测试记住密码,打开主窗体等功能。...ExecSQL方法来查询数据库,并返回查询结果结果中的第一行第一列。...首先我们向主窗体 中添加toolStrip控件,并修改其Name属性为tsOperation先将控件的toolStrip的Dock属性设置为Bottom。   ...数据库查询   窗体加载时,从数据库中获取用户的好友信息,因此需要在DataOperator类中添加GetDataReader方法来执行Sql查询。

    7.6K20

    CS架构整合SQLserver数据库实现C#财务管理系统,报表分析系统

    OleDbCommand:向使用OLEDB公开的数据库发送SQL语句,如Access数据库和MySql数据库 4)OracleCommand:向使用ORACLE公开的数据库发送SQL语句 方法: 1)ExecuteNonQuery...DataReader对象进行读取,对于不同的数据库连接,有不同的DataReader类型,如下: 1)在System.Data.SqlClient命名空间下,可以调用SqlDataReader类 2)在...1)合并DataSet内容 方法为:Merge(dataSet将合并的数据和架构的dataSet名,preserveChanges是否保留当前DataSet中的更改,missingSchemaAction...sqlhelper的对象,即在登陆窗体中让sqlhelper类实例化。...,对象实例化 zhujiemian.Show();//显示主窗体 this.Hide();//隐藏登陆窗体

    1.1K20

    Python GUI项目实战(六)实现添加学生信息的功能

    添加数据的思路 在主窗体点击添加学生按钮,跳转到明细窗体,这个我们在前面的章节中已经实现了,现在我们要考虑的是,在明细窗体的页面数据添加完成后所要进行的操作。...现在有两种主要思路: 思路01: 第一步:写入到文件;第二步:将新添加的信息在主界面显示;然而由于本项目没有使用数据库技术存储数据,而每次添加、修改和删除都要写入文件的话,一方面会影响到程序运行的速度。...等到关闭窗体的时候,系统弹窗询问是否保存数据,点击是,再把数据存储到文件中。 2....注意事项: all_student_list数据是在主窗体里定义的,然而执行添加功能是在明细窗体中进行的,所以我们必须要在明细窗体的构造函数中再添加一个参数来接收主窗体传递的数据!!! ?...二、添加数据的实现 明细窗体已经添加了all_student_list参数,那么我们主窗体的加载明细窗体的方法load_detail_window()也要跟着做出相应的调整: def load_detail_window

    1.7K20

    不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD

    }//对应表名或者实体类的类名称     OK,有了IDataControl接口的这几个接口方法和属性,不使用反射,封装一下,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的...”是否有值。    ...)的数据变化后(新增、修改),可以立即反应到主窗体(Form1)上,而不用主窗体去重新加载数据,这里就必须用到数据绑定集合: private BindingList UserBindingList...增加数据,在新窗体中录入数据 ? 单击按钮保存数据,主窗体列表中自动增加一行数据 ? 新窗口先不关闭,修改下消费金额,确定,发现主窗口列表的数据被同步修改了。...整个过程没有从数据库去重新刷新数据到主窗口网格控件的,实现了多个窗体之见的数据同步。

    2.7K80

    CC++ Qt MdiArea 多窗体组件应用

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...,在toolBar中增加相应的菜单栏,并在主窗体中放入mdiArea容器组件。...窗体中的顶部菜单栏,我们需要手动定义一下他们所具备的功能名称等。...void MainWindow::on_actionTile_triggered() { ui->mdiArea->tileSubWindows(); } 代码运行效果如下: 最后一个功能是主窗体发送数据到子窗体...on_mdiArea_subWindowActivated 实现设置主窗体名字到自身 on_actionSendMsg_triggered 实现主窗体发送消息到子窗体内 // 当子窗体打开时获取到其窗体标题

    1.1K20

    Python GUI项目实战(八)修改密码功能的实现

    要求 主体框架与明细窗体保持一致; 能够读取当前用户名、验证旧密码、设置新密码、确认新密码的功能; 输入密码时输入框显示的内容为 * 号 当前用户名只显示数据,不可修改 2....self.current_user_list = self.user_list[index] 之后,我们在加载主窗体的函数load_main()中,将参数设置为self.current_user_list...当修改密码窗体接收到用户列表数据后,在构造函数中就可以直接设置当前登录的用户名,在Entry_login中显示出来。...修改密码前的判断 修改密码需要有以下条件: 旧密码是否正确 新旧密码不允许相同 新密码不许为空 两次输入新密码是否一致 在修改密码窗体中,我们分别给保存和关闭两个按钮绑定方法commit()和close_window...接着我们在构造方法中添加这个方法,当这个窗体被打开时自动执行该方法把所有的用户登录信息存储在all_login_list中。 2.

    2.4K51

    CC++ Qt MdiArea 多窗体组件应用

    MDI多窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...,在toolBar中增加相应的菜单栏,并在主窗体中放入mdiArea容器组件。...图片窗体中的顶部菜单栏,我们需要手动定义一下他们所具备的功能名称等。...平铺模式void MainWindow::on_actionTile_triggered(){ ui->mdiArea->tileSubWindows();}代码运行效果如下:图片最后一个功能是主窗体发送数据到子窗体...on_mdiArea_subWindowActivated 实现设置主窗体名字到自身on_actionSendMsg_triggered 实现主窗体发送消息到子窗体内// 当子窗体打开时获取到其窗体标题

    1.2K40

    焦点事件中的Validating处理方法

    例如,有一个电话号码的TextBox控件,需要检查该控件是否只包含适当的字符(数字、括号和连字符等等)。通常,我们可使用正则表达式验证用户输入的数据。...关闭窗体和重写验证 当数据无效时,维护焦点的控件的副作用是,使用关闭窗体的任何常规方法都将无法关闭父窗体: 单击“关闭”框 通过右击标题栏显示的“系统”菜单 以编程方式调用 Close 方法...        不过,在某些情况下,无论控件中的值是否有效,您都希望用户可以关闭窗体。...您可以重写验证,并通过创建窗体的 Closing 事件的处理程序来关闭仍包含无效数据的窗体。在该事件中,将 Cancel 属性设置为 False。这将强制关闭该窗体。        ...如果使用此方法强制关闭窗体,控件中尚未保存的任何信息都将丢失。模式窗体在关闭时不会验证控件内容,仍可以使用控件验证将焦点锁定到控件,但不必考虑关闭窗体的行为。

    2K10

    手机APP测试(测试点、测试流程、功能测试)

    不打开应用时,能否接收消息  打开应用时,能否接收消息  登录与不登录情况下,接收消息是否有区别  精确推送,是否只推送给指定用户 1.10 界面测试 1.窗体   测试窗体的方法:   a,窗体大小,...,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示 在测试过程中所用到的测试方法:   1,输入非法数据;   2,输入默认值;   ...分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;   c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空; 5. up-down控件文本框的测试   ...如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试;   e,输入字符。此时系统应提示输入有误。...,更新后的客户端功能是否是新版本功能 逆向:当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否有正常更新最新版本 逆向:升级安装意外情况的测试(如死机、断电、重启) 逆向:强制更新

    9.2K44

    Python GUI项目实战(五)明细信息窗体的完善

    一、填充当前学生信息 1.需求 目前我们已经实现的功能是在主窗体双击表格任一行,弹出明细窗体。我们我们需要做的是:将主窗体中对应的学生信息传递到明细窗体中并显示在明细窗体中。...2.思路 既然要设计主窗体向子窗体的数据传递功能,就要准备好主窗体的传递和子窗体的接收。...self.current_student_list = current_student 然后定义一个加载学生明细信息的函数(如果获取到的当前学生信息为空,则通过弹出对话框提醒用户没有任何数据需要展示,...所以我们设计下面这个方法: 通过鼠标双击表格中的某一行,获取该行的标识符,然后使用item()方法通过标识符获取该行的所有数据。...这种方法有什么缺陷,有没有更好的方法?还有一点我们需要注意的是:布局时不要图方便直接在构建控件后就使用布局,这样会导致后面对控件的属性进行修改时,系统报错。这些都是我们需要注意的地方。

    1.9K20

    C++ Qt开发:TableView与TreeView组件联动

    本章我们继续实现表格的联动效果,当读者点击TableView或TreeView中的某一行时,我们让其实现自动跟随功能,且当用户修改行中特定数据时也让其动态的跟随改变,首先绘制一个主界面如图,分别放置两个组件框...bool hasSelection() const 判断是否有选中的项。...delete ptr;}接着来看下子对话框DialogSize做了什么,在对话框代码中rowCount()是给主窗体调用的函数其功能是获取到当前对话框中spinBoxRow组件中的数值,而columnCount...()同理用于得到spinBoxColumn组件中的数值,最后的setRowColumn()则是用于接收主窗体的船只,并设置到对应的子对话框上的SpinBox组件内,其代码如下;DialogSize::DialogSize...(){ return ui->spinBoxColumn->value();}// 设置主窗体中的TableView行数与列数void DialogSize::setRowColumn(int

    42910

    关于DialogResult

    “确定”按钮的DialogResult的属性, 设置完成后,只要用户一点击“确定”按钮,那么对话框就关闭,重新回到主窗体,然后可以在主窗体中进行相应的处理,比如把数据写入数据库等。...) 这个判断就为真,不管你的邮件格式是否正确,主窗体都会继续向下执行。...所以我们根本就不需要设置“确定”按钮的Diagolue属性,直接把判断邮件是否合格的方法放在”确定”按钮的点击事件中,如果符合,那么就设置窗体的Diagolue属性为OK,用下面的代码: 1:...(VS.80).aspx 窗体的对话框结果是当窗体显示为模式对话框时从该窗体返回的值,如果窗体显示为对话框,用DialogResult枚举中的值设置此属性将设置该窗体的对话框结果值、隐藏模式对话框并将控制返回给调用窗体...因为此行为,所以当应用程序不再需要该窗体时,必须调用该窗体的 Dispose 方法。 可以使用此属性确定对话框是如何关闭的,以便正确处理在该对话框中执行的操作。

    1.1K10

    Qt编写安防视频监控系统30-GPS运动轨迹

    一、前言 此功能是一个客户定制的,主要是需要在地图上动态显示GPS的运动轨迹,有个应用场景就是一个带有监控的车子,实时在运动中,后台可以接收到经纬度信息,需要绘制对应的轨迹,相当于这些摄像机点位是动态移动的...GPS运动轨迹这个功能,也需要用到js的知识,其实就是封装一个js函数,绘制对应的线条路径,这个轨迹点可能包括的信息有经度、纬度、速度、时间、是否标记、时间等信息,写个结构体封装下,方便后期拓展,是否标记的含义是是否改点同时作为一个设备点添加...视频拖动到通道窗体外自动删除视频。 鼠标右键可删除当前+所有视频,截图当前+所有视频。 录像机管理、摄像机管理,可添加删除修改导入导出打印信息,立即应用新的设备信息生成树状列表,不需重启。...在pro文件中可以自由开启是否加载地图。 视频播放可选2种内核自由切换,vlc+ffmpeg,均可在pro中设置。...if (gpsPointInfo.isMark) { //标注点名称 为空则不显示 QString name = ""; //标注点地址 为空则不显示

    2.6K00

    实现查询菜品信息考试题

    菜系信息表中所有字段均必须设置为非空字段,其他设置参见下表: 数据表名 cookType 实体名 菜系表 字段显示 字段名 数据类型 字段大小 备注和说明 菜系ID id int 主键,自增1 菜系名称...typeName char 10 非空 菜品信息表中所有字段均必须设置为非空字段,其他设置参见下表: 数据表名 menuInfo 实体名 菜品信息表 字段显示 字段名 数据类型 字段大小 备注和说明...)和1个上下文菜单控件(ContextMenuStrip),窗体显示位置为屏幕中央,窗体禁止最大化; 5、创建数据库连接,窗体初始状态显示全部菜品信息;将全部菜系显示到组合框中。...,点击右键可删除该记录,删除前弹出“是否确定删除?”...五、注意事项 1、请注意界面美观,控件摆放整齐; 2、请注意代码的书写、命名符合规范,在代码中添加必要的注释; 3、请注意操作数据库时进行必要的异常处理。

    7310

    【愚公系列】2023年11月 Winform控件专题 Label控件详解

    在该事件中,判断文本框中是否为空,如果为空则弹出提示框并阻止焦点离开控件。这样,用户就必须输入有效的值才能离开文本框。...在需要显示ContextMenuStrip的控件(如Button、DataGridView等)的MouseDown事件中编写代码,通过Show方法显示ContextMenuStrip。...Cursor类有很多预定义的光标类型,比如箭头、手型、光标等等。除此之外,也可以使用自定义的光标。以下是一些常用的Cursor类的方法和属性:Current:获取或设置当前光标。...需要注意的是,当多个控件的Dock属性设置相同时,它们的位置顺序将根据它们在容器中的添加顺序决定。如果需要改变它们的顺序,可以通过在容器中删除再重新添加控件的方式来实现。...记住AutoSize为true时2.常用场景Winform中Label控件常用场景有:显示文字:Label控件可以用于显示文本信息,如窗口标题、提示信息、作者信息等。

    90911

    c#实战教程_ps初学者入门视频

    MainForm1=form1;//新增语句,这里Form1是主窗体的属性Name的值 }//有了Form1,可以在formFindReplace窗体中调用主窗体的公有方法 (24) 为主窗体...=form1;//新增语句,这里Form1是主窗体的属性Name的值 }//有了Form1,可以在formChild窗体中调用主窗体的公有方法 (6) 把Mainmenu控件放到子窗体中。... 方法IsEmpty:测试是否为空区域。  方法IsVisible:测试参数指定的点或矩形是否在区域中。  方法Union:可以得到两个Region类对象的并集。...Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    15.7K10
    领券