一个简陋的小工具

from PyQt5.Qt import *
import sys
import pyodbc

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle('固定资产校正工具v1.0')
window.resize(480,180)

class Ui(QWidget):

    def __init__(self):
        self.label = QLabel (window)
        self.qtext = QLineEdit (window)

    def la(self, name, x, y):
        self.label.setText(name)
        self.label.move(x, y)

    def qtx(self, a, b, c=0):
        self.qtext.resize(150,20)
        self.qtext.move(a, b)
        self.qtext.setEchoMode(c)

def sl():
    a = p1.qtext.text ()
    b = p2.qtext.text ()
    c = p3.qtext.text ()
    return a, b, c

p1 = Ui()
p1.la('数据库名:', 10, 10)
p1.qtx(110, 5)

p2 = Ui()
p2.la('数据库用户名:', 10, 30)
p2.qtx(110, 25)

p3 = Ui()
p3.la('数据库密码:', 10, 50)
p3.qtx(110, 45, 2)

# --------------------------------------------------------------------------

class ODBC:
    def __init__(self, server, uid, pwd, db, DRIVER='{SQL Server}'):
        self.server = server
        self.uid = uid
        self.pwd = pwd
        self.db = db
        self.DRIVER = DRIVER

    def GetConnect(self):
        if not self.db:
            raise (NameError, '没有设置数据库信息')
        self.conn = pyodbc.connect (SERVER=self.server, UID=self.uid, PWD=self.pwd, DATABASE=self.db,
                                    DRIVER=self.DRIVER)
        cur = self.conn.cursor ()
        if not cur:
            raise (NameError, '连接数据库失败')
        else:
            return cur

    def ExecQuery(self, sql):
        cur = self.GetConnect ()
        cur.execute (sql)
        resList = cur.fetchall ()

        self.conn.close ()
        return resList

    def ExecNonQuery(self, sql):
        cur = self.GetConnect ()
        cur.execute (sql)
        self.conn.commit ()
        self.conn.close ()


def main():
    ms = ODBC(server='.', uid=sl()[1], pwd=sl()[2], db=sl()[0])
    sql = ms.ExecNonQuery("update t_BOS200000005 set fnote = '这是一个备注xxoo'")
    return '提示信息:执行成功'

# --------------------------------------------------------------------------

def set1():
    if sl()[0] == '' or sl()[1] == '' or sl()[2] == '':
        label1.setText('提示信息:信息不能为空')
    else:
        label1.setText (main())
label1 = QLabel('提示信息:',window)
label1.setGeometry(QRect(480, 480, 480, 20*1))
label1.move(10,150)

label2 = QLabel('Gpeak', window)
label2.setStyleSheet('font-variant: small-caps;font-size:80px;color:orange')
label2.move(300,20)

button = QPushButton('确认校正', window)
button.resize(100,50)
button.move(100,80)
button.clicked.connect(sl)
button.clicked.connect(set1)

window.show()

sys.exit(app.exec_())

  

posted @ 2020-07-02 09:41  Gpeak  阅读(181)  评论(0)    收藏  举报