Pycharm+OpenGuass 数据库大作业开发笔记(三)

一.界面控件的绘制

选择“工具”→“External Tools”→“QtDesigner”启动designer,在左边工具栏选择label控件,双击将控件名改为“学号”,用于之前相同的方法修改文本至合适的大小,依次绘制“姓名”、“年龄”、“性别”、“所在系”。完成后点击保存。

2. 从工具箱选择“line Edit”控件,在“学号”后面绘制该控件,与先前一样右键后选择“更改样式表”,可以改变其显示的字体与大小。完成后复制控件,依次粘贴在“姓名”、“年龄”、“性别”、“所在系”之后:

3.观察右边的对象查看器,可以看到多出来了5个LineEdit对象,双击后可以进行编辑,将其依次修改为line1,line2,line3,line4,line5:

 

点击保存:

二.实现表格中选中行的数据显示

1.切换回Pycharm中,在Stats类构造函数下添加点击表格的事件函数:

self.ui.table1.itemClicked.connect(self.show_data)

再在类中添加类函数show_data

def show_data(self, Item=None):
    # 如果单元格对象为空
    if Item is None:
        return
    else:
        row = Item.row()  # 获取行数
        sno = self.ui.table1.item(row,0).text()#获取该行内容
        sname = self.ui.table1.item(row, 1).text()
        ssex = self.ui.table1.item(row, 2).text()
        ssage= self.ui.table1.item(row, 3).text()
        sdept  = self.ui.table1.item(row, 4).text()
        self.ui.line1.setText(sno) #显示到5个编辑框中
        self.ui.line2.setText(sname)
        self.ui.line3.setText(ssex)
        self.ui.line4.setText(ssage)
        self.ui.line5.setText(sdept)

添加后的效果如下图:

这样在点击表格中的单元格时,会调用show_data函数并以当前单元格信息作为参数,通过获取当前的行数,来得到当前行内的所有信息,再显示在line1-line5这5个控件上

2.右键后选择“运行”结果如下:

三.实现数据的添加

    1.回到Designer中,在工具栏中找到pushbutton,将其绘制到主窗口中,双击进行编辑,将其更改为“添加”,右键选择“更改样式”将文本更改到合适的字体和大小,同时在对象查看器中,将此时刚出现的对象名“pushbutton”修改为“add_button”。

2.切换回Pycharm中,在Stats类构造函数下添加点击button的事件函数:

self.ui.add_button.clicked.connect(self.add_Line)

并添加类函数add_Line:

def add_Line(self):  # 关闭窗口
    sno = self.ui.line1.text()  # 获取输入框的内容
    sname = self.ui.line2.text()
    ssex = self.ui.line3.text()
    sage = self.ui.line4.text()
    sdept = self.ui.line5.text()

    cur.execute(f'select * from student where sno = \'%s\' ;' % (sno))
    result = cur.fetchall()
    if result != []:
        QMessageBox.about(self.ui, '提示', '该学号已存在,无法添加')
        return 0
    self.ui.table1.insertRow(self.row)  # 增加新行
    self.add_cell(self.row, 0, sno)
    self.add_cell(self.row, 1, sname)
    self.add_cell(self.row, 2, ssex)
    self.add_cell(self.row, 3, sage)
    self.add_cell(self.row, 4, sdept)
    self.row += 1
    val = (sno, sname, ssex, int(sage), sdept)
    cur.execute("insert into student(Sno, Sname, Ssex, Sage, Sdept) VALUES (%s,%s,%s,%s,%s);", val)
    conn.commit()
    self.ui.line1.clear()  # 清理编辑框的内容
    self.ui.line2.clear()
    self.ui.line3.clear()
    self.ui.line4.clear()
    self.ui.line5.clear()
    QMessageBox.about(self.ui, '提示', '添加成功')

添加后结果如下:

这样在点击“添加”按键时,会自动调用add_Line类函数将编辑框的内容显示出来,并用SQL语句将数据添加进数据库,这里需要事先判断主码是否重复,并添加相应的提示框。

3.右键点击运行:

可以看到上图已经添加成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值