利用sqlite3和wx库搭建GUI+SQL

2021/12/12 19:20:08

本文主要是介绍利用sqlite3和wx库搭建GUI+SQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# -*- coding:utf-8 -*-
import wx
import sqlite3
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, '用户注册or查询', size=(400,300))
#创建面板
panel = wx.Panel(self)

#创建“查询”,“注册”和“取消”按钮,并绑定事件
self.bt_check = wx.Button(panel, label ='查询')
self.bt_check.Bind(wx.EVT_BUTTON,self.OnclickSubmit)
self.bt_register = wx.Button(panel, label = '注册')
self.bt_register.Bind(wx.EVT_BUTTON,self.OnclickRegister)
#创建文本和,左对齐
self.title = wx.StaticText(panel, label="请输入用户名(新用户第一次登陆请输入在注册栏)")
self.label_user = wx.StaticText(panel, label="用户名:")
self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT)
self.label_regis1 = wx.StaticText(panel,label="注册用户名")
self.text_regis1 = wx.TextCtrl(panel, style=wx.TE_LEFT)
self.label_regis2 = wx.StaticText(panel,label="注册用户学号")
self.text_regis2 = wx.TextCtrl(panel, style=wx.TE_LEFT)
#添加容器,容器中控件横向排列
hsizer_user = wx.BoxSizer(wx.HORIZONTAL)
hsizer_user.Add(self.label_user, proportion=0, flag=wx.ALL, border=5)
hsizer_user.Add(self.text_user, proportion=1, flag=wx.ALL, border=5)
hsizer_regis1 = wx.BoxSizer(wx.HORIZONTAL)
hsizer_regis1.Add(self.label_regis1, proportion=0, flag=wx.ALL, border=5)
hsizer_regis1.Add(self.text_regis1, proportion=0, flag=wx.ALL, border=5)
hsizer_regis2 = wx.BoxSizer(wx.HORIZONTAL)
hsizer_regis2.Add(self.label_regis2, proportion=0, flag=wx.ALL, border=5)
hsizer_regis2.Add(self.text_regis2, proportion=0, flag=wx.ALL, border=5)
hsizer_button = wx.BoxSizer(wx.HORIZONTAL)
hsizer_button.Add(self.bt_check, proportion=0, flag=wx.ALIGN_CENTER, border=5)
hsizer_button.Add(self.bt_register, proportion=0, flag=wx.ALIGN_CENTER, border=5)
#添加容器,容器中的空间纵向排列
vsizer_all = wx.BoxSizer(wx.VERTICAL)
vsizer_all.Add(self.title, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=15)
vsizer_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_regis1, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_regis2, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_button, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP, border=15)
panel.SetSizer(vsizer_all)
def OnclickSubmit(self,event):
"""单击查询按钮,执行方法"""
username = self.text_user.GetValue() #获取输入的用户名
conn = sqlite3.connect('StudentDate.db') #连接数据库
cursor = conn.cursor() #创建游标
cursor.execute('select * from user') #执行查询语句
result1 = cursor.fetchone() #获取查询结果
if username == "" :
message = "用户名不能为空"
wx.MessageBox(message)
elif username == str(result1[0]):
wx.MessageBox(result1[1])
else:
wx.MessageBox("用户名不正确")

def OnclickRegister(self,event):
"""单击注册按钮,执行方法"""
newName = self.text_regis1.GetValue()
newNum = self.text_regis2.GetValue()
date=(newNum,newName,)
if newName == "" or newNum == "" :
wx.MessageBox("注册名与注册学号不能为空") #弹出提示框
else:
conn = sqlite3.connect('StudentDate.db') #连接数据库
cursor = conn.cursor() #创建游标
#执行插入语句,添加学生信息
cursor.executemany("insert into user (id, name) values (?,?)", ([date[0]],[date[1]]))
cursor.close() #关闭游标
conn.commit() #提交事务
conn.close() #关闭连接
wx.MessageBox("注册成功")


if __name__ == '__main__':
app = wx.App() #初始化
frame = MyFrame(parent=None,id=-1) #实例化MyFrame类,并传递参数
frame.Show() #显示窗口
app.MainLoop() #调用主循环方法

 



这篇关于利用sqlite3和wx库搭建GUI+SQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程