Python之数据库修改模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/84574248

一 更新数据库界面

1 主界面代码

# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Update_Table_Window import MyFrame37
from Update_Document_Window import MyFrame39
from Update_ZiDuan import MyFrame41
###########################################################################
## Class MyFrame33
###########################################################################
class MyFrame33(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(536, 151),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        bSizer8 = wx.BoxSizer(wx.VERTICAL)
        bSizer9 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText8 = wx.StaticText(self, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.Size(130, 50), 0)
        self.m_staticText8.Wrap(-1)
        bSizer9.Add(self.m_staticText8, 0, wx.ALL, 5)
        self.m_button3 = wx.Button(self, wx.ID_ANY, u"更新TABLE名称",
                                   wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer9.Add(self.m_button3, 0, wx.ALL, 5)
        self.m_button4 = wx.Button(self, wx.ID_ANY, u"更新数据",
                                   wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer9.Add(self.m_button4, 0, wx.ALL, 5)
        bSizer8.Add(bSizer9, 0, wx.EXPAND, 5)
        bSizer10 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
                                           wx.DefaultPosition, wx.Size(130, 50), 0)
        self.m_staticText9.Wrap(-1)
        bSizer10.Add(self.m_staticText9, 0, wx.ALL, 5)
        self.m_button5 = wx.Button(self, wx.ID_ANY, u"更新TABLE字段",
                                   wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer10.Add(self.m_button5, 0, wx.ALL, 5)
        self.m_button6 = wx.Button(self, wx.ID_ANY, u"退出",
                                   wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer10.Add(self.m_button6, 0, wx.ALL, 5)
        bSizer8.Add(bSizer10, 0, wx.EXPAND, 5)
        self.SetSizer(bSizer8)
        self.Layout()
        self.Centre(wx.BOTH)
        # Connect Events
        self.m_button3.Bind(wx.EVT_BUTTON, self.m_button3OnButtonClick)
        self.m_button4.Bind(wx.EVT_BUTTON, self.m_button4OnButtonClick)
        self.m_button5.Bind(wx.EVT_BUTTON, self.m_button5OnButtonClick)
        self.m_button6.Bind(wx.EVT_BUTTON, self.m_button6OnButtonClick)
    def __del__(self):
        pass
    # Virtual event handlers, overide them in your derived class
    def m_button3OnButtonClick(self, event):
        window = MyFrame37(None)
        window.Show()
    def m_button4OnButtonClick(self, event):
        window = MyFrame39(None)
        window.Show()
    def m_button5OnButtonClick(self, event):
        window = MyFrame41(None)
        window.Show()
    def m_button6OnButtonClick(self, event):
        exit()
#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame33(None)
    window.Show()
    app.MainLoop()

2 运行结果

二 更新数据表名称

1 界面代码

# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Update_Table import Update_Table
from Check_Database import Check_Database
from Notice import MyFrame3
###########################################################################
## Class MyFrame37
###########################################################################
class MyFrame37(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(571, 459),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        bSizer11 = wx.BoxSizer(wx.VERTICAL)
        bSizer12 = wx.BoxSizer(wx.VERTICAL)
        self.m_staticText10 = wx.StaticText(self, wx.ID_ANY, u"所有的TABLE",
                                            wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText10.Wrap(-1)
        self.m_staticText10.SetFont(wx.Font(15, 74, 90, 90, False, "Sans"))
        bSizer12.Add(self.m_staticText10, 0, wx.ALL, 5)
        self.m_textCtrl7 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(800, 200),
                                       style=wx.TE_READONLY|wx.TE_MULTILINE)
        bSizer12.Add(self.m_textCtrl7, 0, wx.ALL, 5)
        bSizer11.Add(bSizer12, 0, wx.EXPAND, 5)
        bSizer13 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText11 = wx.StaticText(self, wx.ID_ANY, u"输入原TABLE",
                                            wx.DefaultPosition, wx.Size(200, 50), 0)
        self.m_staticText11.Wrap(-1)
        bSizer13.Add(self.m_staticText11, 0, wx.ALL, 5)
        self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer13.Add(self.m_textCtrl8, 0, wx.ALL, 5)
        bSizer11.Add(bSizer13, 0, wx.EXPAND, 5)
        bSizer14 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText12 = wx.StaticText(self, wx.ID_ANY,
                                            u"输入修改后的TABLE", wx.DefaultPosition,
                                            wx.Size(200, 50), 0)
        self.m_staticText12.Wrap(-1)
        bSizer14.Add(self.m_staticText12, 0, wx.ALL, 5)
        self.m_textCtrl10 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer14.Add(self.m_textCtrl10, 0, wx.ALL, 5)
        bSizer11.Add(bSizer14, 0, wx.EXPAND, 5)
        bSizer15 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText14 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
                                            wx.DefaultPosition, wx.Size(220, -1), 0)
        self.m_staticText14.Wrap(-1)
        bSizer15.Add(self.m_staticText14, 0, wx.ALL, 5)
        self.m_button8 = wx.Button(self, wx.ID_ANY, u"确定",
                                   wx.DefaultPosition, wx.Size(100, 50), 0)
        bSizer15.Add(self.m_button8, 0, wx.ALL, 5)
        bSizer11.Add(bSizer15, 0, wx.EXPAND, 5)
        self.SetSizer(bSizer11)
        self.Layout()
        self.Centre(wx.BOTH)
        # Connect Events
        self.m_button8.Bind(wx.EVT_BUTTON, self.m_button8OnButtonClick)
        #######################Check_Database###############################
        check_database=Check_Database('show tables')
        show=''
        for i in range(0,len(check_database.return_result)):
            show+=check_database.return_result[i]
        self.m_textCtrl7.SetValue(show)
    def __del__(self):
        pass
    # Virtual event handlers, overide them in your derived class
    def m_button8OnButtonClick(self, event):
        sql="rename table %s to %s"%(self.m_textCtrl8.GetValue(),
                                     self.m_textCtrl10.GetValue())
        update=Update_Table(sql)
        notice=MyFrame3(None)
        notice.Show()
#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame37(None)
    window.Show()
    app.MainLoop()

2 测试结果

三 数据库操作

1 代码

# -*- coding: UTF-8 -*-
import MySQLdb
from ReadCode import ReadCode
from Notice import MyFrame3
class Update_Table():
    def __init__(self,sql):
        readcode=ReadCode()
        Line=readcode.return_line()
        try:
            db = MySQLdb.connect("localhost","%s"%Line[0],
                                 "%s"%Line[1],"%s"%Line[2])
        except:
            notice=MyFrame3(None,'请检查主面板的用户名、'
                                 '密码、DATABASE是否输入!')
            notice.Show()
        else:
            # 使用cursor()方法获取操作游标
            cursor = db.cursor()
            try:
               # 执行SQL语句
               cursor.execute(sql)
               # 提交到数据库执行
               db.commit()
            except:
               # 发生错误时回滚
               db.rollback()
            # 关闭数据库连接
            db.close()

四 修改表的字段

1 代码

# -*- coding: utf-8 -*-
##############################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
##############################################################
import wx
import wx.xrc
from Check_Database import Check_Database
from Check_Desc import Check_Desc
from Save_Document import SaveDocument
from Notice import MyFrame3
#############################################################
## Class MyFrame41
#############################################################
class MyFrame41(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY,
                          title=wx.EmptyString,
                          pos=wx.DefaultPosition,
                          size=wx.Size(560, 521),
                          style=wx.DEFAULT_FRAME_STYLE
                                | wx.TAB_TRAVERSAL)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        bSizer23 = wx.BoxSizer(wx.VERTICAL)
        bSizer7 = wx.BoxSizer(wx.VERTICAL)
        self.m_staticText5 = wx.StaticText(self, wx.ID_ANY,
                                           u"所有的表名如下:",
                                           wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText5.Wrap(-1)
        self.m_staticText5.SetFont(wx.Font(14, 74, 90, 90,
                                           False, "Sans"))
        bSizer7.Add(self.m_staticText5, 0, wx.ALL, 5)
        self.m_textCtrl5 = wx.TextCtrl(self, wx.ID_ANY,
                                       wx.EmptyString,
                                       wx.DefaultPosition,
                                       wx.Size(800, 150),
                                       style=wx.TE_MULTILINE
                                             |wx.TE_READONLY)
        bSizer7.Add(self.m_textCtrl5, 0, wx.ALL, 5)
        bSizer23.Add(bSizer7, 0, wx.EXPAND, 5)
        bSizer24 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText21 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入表名查看字段",
                                            wx.DefaultPosition,
                                            wx.Size(200, 50), 0)
        self.m_staticText21.Wrap(-1)
        self.m_staticText21.SetFont(wx.Font(14, 74, 90, 90,
                                            False, "Sans"))
        bSizer24.Add(self.m_staticText21, 0, wx.ALL, 5)
        self.m_textCtrl17 = wx.TextCtrl(self, wx.ID_ANY,
                                        wx.EmptyString,
                                        wx.DefaultPosition,
                                        wx.Size(150, 50), 0)
        bSizer24.Add(self.m_textCtrl17, 0, wx.ALL, 5)
        self.m_button11 = wx.Button(self, wx.ID_ANY, u"确定",
                                    wx.DefaultPosition,
                                    wx.Size(100, 50), 0)
        bSizer24.Add(self.m_button11, 0, wx.ALL, 5)
        bSizer23.Add(bSizer24, 0, wx.EXPAND, 5)
        bSizer25 = wx.BoxSizer(wx.VERTICAL)
        self.m_textCtrl19 = wx.TextCtrl(self, wx.ID_ANY,
                                        wx.EmptyString,
                                        wx.DefaultPosition,
                                        wx.Size(800, 50),
                                        style=wx.TE_MULTILINE
                                              |wx.TE_READONLY)
        bSizer25.Add(self.m_textCtrl19, 0, wx.ALL, 5)
        bSizer23.Add(bSizer25, 0, wx.EXPAND, 5)
        bSizer26 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText22 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入想要更新的字段",
                                            wx.DefaultPosition,
                                            wx.Size(150, 50), 0)
        self.m_staticText22.Wrap(-1)
        bSizer26.Add(self.m_staticText22, 0, wx.ALL, 5)
        self.m_textCtrl20 = wx.TextCtrl(self, wx.ID_ANY,
            wx.EmptyString,wx.DefaultPosition,wx.Size(150, 50), 0)
        bSizer26.Add(self.m_textCtrl20, 0, wx.ALL, 5)
        bSizer23.Add(bSizer26, 0, wx.EXPAND, 5)
        bSizer27 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText23 = wx.StaticText(self, wx.ID_ANY,
                    u"请输入更新后字段的名称与数据类型、主键、自增等",
                                            wx.DefaultPosition,
                                            wx.Size(150, 50), 0)
        self.m_staticText23.Wrap(-1)
        bSizer27.Add(self.m_staticText23, 0, wx.ALL, 5)
        self.m_textCtrl21 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition,
                                        wx.Size(300, 50), 0)
        bSizer27.Add(self.m_textCtrl21, 0, wx.ALL, 5)
        bSizer23.Add(bSizer27, 0, wx.EXPAND, 5)
        bSizer28 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText24 = wx.StaticText(self, wx.ID_ANY,
                                            wx.EmptyString,
                                            wx.DefaultPosition, wx.Size(200, 50), 0)
        self.m_staticText24.Wrap(-1)
        bSizer28.Add(self.m_staticText24, 0, wx.ALL, 5)
        self.m_button12 = wx.Button(self, wx.ID_ANY, u"确定",
                                    wx.DefaultPosition, wx.Size(100, 50), 0)
        bSizer28.Add(self.m_button12, 0, wx.ALL, 5)
        bSizer23.Add(bSizer28, 1, wx.EXPAND, 5)
        self.SetSizer(bSizer23)
        self.Layout()
        self.Centre(wx.BOTH)
        # Connect Events
        self.m_button11.Bind(wx.EVT_BUTTON, self.m_button11OnButtonClick)
        self.m_button12.Bind(wx.EVT_BUTTON, self.m_button12OnButtonClick)
        ####################Check_Database#######################
        check_database=Check_Database('show tables')
        show=''
        for i in range(0,len(check_database.return_result)):
            show+=check_database.return_result[i]
        self.m_textCtrl5.SetValue(show)
    def __del__(self):
        pass
    # Virtual event handlers, overide them in your derived class
    def m_button11OnButtonClick(self, event):
        table_name=self.m_textCtrl17.GetValue()
        check=Check_Desc(table_name)
        result=''
        for i in range(0,len(check.return_result)):
            result+=check.return_result[i]
        self.m_textCtrl19.SetValue(result)
    def m_button12OnButtonClick(self, event):
        sql="alter table %s change %s %s"%(self.m_textCtrl17.GetValue(),
                                           self.m_textCtrl20.GetValue(),
                                           self.m_textCtrl21.GetValue())
        save=SaveDocument(sql)
        notice=MyFrame3(None)
        notice.Show()
#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame41(None)
    window.Show()
    app.MainLoop()

2 运行结果

五 修改表的一条数据

1 代码

# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
from Check_Database import Check_Database
from Check_Document import Check_Document
from Check_Desc import Check_Desc
from Save_Document import SaveDocument
from Notice import MyFrame3
###########################################################################
## Class MyFrame39
###########################################################################
class MyFrame39(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString,
                          pos=wx.DefaultPosition,size=wx.Size(605, 716),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        bSizer16 = wx.BoxSizer(wx.VERTICAL)
        bSizer8 = wx.BoxSizer(wx.VERTICAL)
        self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"所有的表如下:",
                                           wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText7.Wrap(-1)
        bSizer8.Add(self.m_staticText7, 0, wx.ALL, 5)
        self.m_textCtrl6 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.Size(800, 100),
                                       style=wx.TE_READONLY|wx.TE_MULTILINE)
        bSizer8.Add(self.m_textCtrl6, 0, wx.ALL, 5)
        bSizer16.Add(bSizer8, 0, wx.EXPAND, 5)
        bSizer22 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText20 = wx.StaticText(self, wx.ID_ANY, u"请输入想要更新数据的表名",
                                            wx.DefaultPosition, wx.Size(200, 50), 0)
        self.m_staticText20.Wrap(-1)
        bSizer22.Add(self.m_staticText20, 0, wx.ALL, 5)
        self.m_textCtrl16 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(120, 50), 0)
        bSizer22.Add(self.m_textCtrl16, 0, wx.ALL, 5)
        self.m_button10 = wx.Button(self, wx.ID_ANY, u"确定", wx.DefaultPosition,
                                    wx.Size(100, 50), 0)
        bSizer22.Add(self.m_button10, 0, wx.ALL, 5)
        bSizer16.Add(bSizer22, 0, wx.EXPAND, 5)
        bSizer17 = wx.BoxSizer(wx.VERTICAL)
        self.m_staticText15 = wx.StaticText(self, wx.ID_ANY, u"表的数据如下",
                                            wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText15.Wrap(-1)
        self.m_staticText15.SetFont(wx.Font(13, 74, 90, 90, False, "Sans"))
        bSizer17.Add(self.m_staticText15, 0, wx.ALL, 5)
        self.m_textCtrl12 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(800, 200),
                                        style=wx.TE_READONLY|wx.TE_MULTILINE)
        bSizer17.Add(self.m_textCtrl12, 0, wx.ALL, 5)
        bSizer16.Add(bSizer17, 0, wx.EXPAND, 5)
        bSizer18 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText16 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入想要更新的数据的唯一条件",
                                            wx.DefaultPosition, wx.Size(230, 50), 0)
        self.m_staticText16.Wrap(-1)
        bSizer18.Add(self.m_staticText16, 0, wx.ALL, 5)
        self.m_textCtrl13 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer18.Add(self.m_textCtrl13, 0, wx.ALL, 5)
        bSizer16.Add(bSizer18, 0, wx.EXPAND, 5)
        bSizer19 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText17 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入想要更新的的数据的相应字段",
                                            wx.DefaultPosition, wx.Size(230, 50), 0)
        self.m_staticText17.Wrap(-1)
        bSizer19.Add(self.m_staticText17, 0, wx.ALL, 5)
        self.m_textCtrl14 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer19.Add(self.m_textCtrl14, 0, wx.ALL, 5)
        bSizer16.Add(bSizer19, 0, wx.EXPAND, 5)
        bSizer20 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText18 = wx.StaticText(self, wx.ID_ANY,
                                            u"请输入想更新后数据值",
                                            wx.DefaultPosition, wx.Size(230, 50), 0)
        self.m_staticText18.Wrap(-1)
        bSizer20.Add(self.m_staticText18, 0, wx.ALL, 5)
        self.m_textCtrl15 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(150, 50), 0)
        bSizer20.Add(self.m_textCtrl15, 0, wx.ALL, 5)
        bSizer16.Add(bSizer20, 0, wx.EXPAND, 5)
        bSizer21 = wx.BoxSizer(wx.HORIZONTAL)
        self.m_staticText19 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
                                            wx.DefaultPosition, wx.Size(200, -1), 0)
        self.m_staticText19.Wrap(-1)
        bSizer21.Add(self.m_staticText19, 0, wx.ALL, 5)
        self.m_button9 = wx.Button(self, wx.ID_ANY, u"确定", wx.DefaultPosition,
                                   wx.Size(100, 50), 0)
        bSizer21.Add(self.m_button9, 0, wx.ALL, 5)
        bSizer16.Add(bSizer21, 0, wx.EXPAND, 5)
        self.SetSizer(bSizer16)
        self.Layout()
        self.Centre(wx.BOTH)
        # Connect Events
        self.m_button10.Bind(wx.EVT_BUTTON, self.m_button10OnButtonClick)
        self.m_button9.Bind(wx.EVT_BUTTON, self.m_button9OnButtonClick)
        ####################Check_Database##########################
        check_database=Check_Database('show tables')
        show=''
        for i in range(0,len(check_database.return_result)):
            show+=check_database.return_result[i]
        self.m_textCtrl6.SetValue(show)
    def __del__(self):
        pass
    # Virtual event handlers, overide them in your derived class
    def m_button10OnButtonClick(self, event):
        table_name=self.m_textCtrl16.GetValue()
        check1=Check_Document(table_name)
        check2=Check_Desc(table_name)
        result=''
        for j in range(0,len(check2.return_result)):
            result+=check2.return_result[j]
        for i in range(0,len(check1.return_result)):
            result+=str(check1.return_result[i])
        self.m_textCtrl12.SetValue(result)
    def m_button9OnButtonClick(self, event):
        TiaoJian=self.m_textCtrl13.GetValue()
        ZiDuan=self.m_textCtrl14.GetValue()
        Values=self.m_textCtrl15.GetValue()
        sql="update %s set %s=%s where %s"%(self.m_textCtrl16.GetValue(),
                                            ZiDuan,Values,TiaoJian)
        save=SaveDocument(sql)
        notice=MyFrame3(None)
        notice.Show()
#测试
if __name__=='__main__':
    app=wx.App()
    window=MyFrame39(None)
    window.Show()
    app.MainLoop()

2 运行结果

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/84574248