在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python版實驗室設備管理系統源代碼

汽車電子技術 ? 來源:Python代碼大全 ? 作者:Python代碼狂人 ? 2023-02-24 10:20 ? 次閱讀

Python版實驗室設備管理系統源代碼、實驗室儀器借用記錄基于PySide2+sqlite3,用Pyside2開發的儀器借用記錄系統,儲存數據用的sqlite,主要就是增查改功能。程序入口main.py。運行程序前請安裝pyside2及sqlite3。儀器借用及歸還時需求注明儀器狀態。

主界面

poYBAGP4Hk2AflqoAAIf9XjrOao924.png

借用界面

poYBAGP4HluAZdfPAAHWWtl6Ms8512.png

歸還界面

poYBAGP4HmeASdSvAAHTg4c0sFQ915.png

mian.py

import sqlite3
rom PySide2.QtWidgets import QApplication, QMessageBox, QMainWindow, QTableWidgetItem, QStyleFactory
from PySide2.QtUiTools import QUiLoader
from main_ui import Ui_MainWindow

instrument_list = ['濃度儀_1', '濃度儀_2', '風速儀_1', '風速儀_2', '風速儀_3', '測厚儀']
database = 'borrowing.db'


class MainWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        # 從文件中加載UI定義
        # self.ui = QUiLoader().load('main_ui.ui')
        # 使用ui文件導入定義界面類
        self.ui = Ui_MainWindow()
        # 初始化界面
        self.ui.setupUi(self)

        self.at_home = True
        # 加載儀器名列表
        self.ui.namebox.addItems(instrument_list)
        self.load_data()
        # 切換儀器名時更新表中的借用記錄
        self.ui.namebox.currentIndexChanged.connect(self.load_data)
        self.ui.borrowbutton.clicked.connect(self.borrow_button)
        self.ui.backbutton.clicked.connect(self.back_button)

    def load_data(self):
        self.ui.infotable.clearContents()
        self.ui.infotable.setRowCount(0)
        name = self.ui.namebox.currentText()
        # 創建連接
        con = sqlite3.connect(database)
        # 創建游標對象
        cur = con.cursor()
        # 編寫查詢sql語句
        sql = f'select * from {name}'
        try:
            cur.execute(sql)
            # 獲取結果集
            record = cur.fetchall()
            # 顯示存放位置
            self.ui.placelabel.setText(f'{record[0][-1]}')
            for row in record:
                # 獲取當前表格行數
                rowcount = self.ui.infotable.rowCount()
                # print(row)
                # 在下面插入一行
                self.ui.infotable.insertRow(rowcount)
                i = 0
                for info in row[1:-1]:
                    if info is None:
                        info = ''
                    # 將獲取的信息填入相應行列的單元格中
                    self.ui.infotable.setItem(rowcount, i, QTableWidgetItem(info))
                    i += 1
            # 獲取最后一次借用記錄
            last_row = record[-1]
            if last_row[5]:
                # 有實際歸還日期,說明已經歸還,設備在實驗室
                self.at_home = True
                self.ui.statelabel.setText('設備狀態:已歸還')
                # 操作界面清空
                self.ui.borrowtime.clear()
                self.ui.exceptback.clear()
                self.ui.borrowstate.clear()
                self.ui.borrower.clear()
            else:
                # 實際歸還日期為空,說明還沒有歸還
                self.at_home = False
                self.ui.statelabel.setText('設備狀態:未歸還')
                self.ui.borrowtime.setText(last_row[1])
                self.ui.exceptback.setText(last_row[3])
                self.ui.borrowstate.setText(last_row[4])
                self.ui.borrower.setText(last_row[2])
        except Exception as e:
            print(e)
            QMessageBox.about(self.ui, '提示', '查詢失敗!')
        finally:
            # 關閉游標連接
            cur.close()
            # 關閉數據庫連接
            con.close()

    def borrow_button(self):
        if self.at_home:
            if self.ui.borrowtime.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入借用日期!')
            elif self.ui.exceptback.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入預計歸還日期!')
            elif self.ui.borrowstate.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入借出時狀態!')
            elif self.ui.borrower.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入借用人!')
            else:
                # 信息都填好,往數據庫里插入入一條新的借用記錄
                name = self.ui.namebox.currentText()
                # 創建連接
                con = sqlite3.connect(database)
                # 創建游標對象
                cur = con.cursor()
                # 編寫插入的sql語句
                sql = f'insert into {name}(借用日期,借用人,預計歸還日期,借出時狀態,存放位置) values(?,?,?,?,?)'
                new_row = (self.ui.borrowtime.text(), self.ui.borrower.text(), self.ui.exceptback.text(),
                           self.ui.borrowstate.text(), self.ui.placelabel.text())
                try:
                    # 執行sql
                    cur.execute(sql, new_row)
                    con.commit()
                    QMessageBox.about(self.ui, '提示', f'{name}借出成功!')
                except Exception as e:
                    print(e)
                    con.rollback()
                    QMessageBox.about(self.ui, '提示', f'{name}借出失敗!')
                finally:
                    # 關閉游標連接
                    cur.close()
                    # 關閉數據庫連接
                    con.close()
        else:
            QMessageBox.about(self.ui, '提示', '儀器未歸還!')

    def back_button(self):
        if self.at_home:
            QMessageBox.about(self.ui, '提示', '儀器未借出!')
        else:
            if self.ui.actualback.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入實際歸還日期!')
            elif self.ui.backstate.text() == '':
                QMessageBox.about(self.ui, '提示', '請填入歸還時狀態!')
            else:
                # 信息都填好,往數據庫里插入新的歸還記錄
                name = self.ui.namebox.currentText()
                # 創建連接
                con = sqlite3.connect(database)
                # 創建游標對象
                cur = con.cursor()
                # 編寫修改的sql語句
                sql = f'update {name} set 實際歸還日期=?, 歸還時狀態=? where 借用日期=?'
                new_back = (self.ui.actualback.text(), self.ui.backstate.text(), self.ui.borrowtime.text())
                try:
                    # 執行sql
                    cur.execute(sql, new_back)
                    # 提交事物
                    con.commit()
                    QMessageBox.about(self.ui, '提示', f'{name}歸還成功!')
                except Exception as e:
                    print(e)
                    QMessageBox.about(self.ui, '提示', f'{name}歸還失敗!')
                    con.rollback()
                finally:
                    # 關閉游標連接
                    cur.close()
                    # 關閉數據庫連接
                    con.close()


app = QApplication([])
app.setStyle(QStyleFactory.create('Fusion'))
mainw = MainWindow()
mainw.show()
app.exec_()

完整版Python版實驗室設備管理系統下載地址:

https://download.csdn.net/download/weixin_42756970/86803665

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源代碼
    +關注

    關注

    96

    文章

    2946

    瀏覽量

    66827
  • SQlite
    +關注

    關注

    0

    文章

    78

    瀏覽量

    15964
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84849
收藏 人收藏

    評論

    相關推薦

    實驗室儀器設備管理制度

    實驗室儀器設備管理制度中北大學實驗室儀器設備管理制度一、儀器設備管理辦法一、為了加強我校實驗室
    發表于 03-19 16:24

    實驗室管理系統

    實驗室管理系統主要是解決,本人所在學校實驗室智能化問題,實現功能短信查課(TC35模塊);安全報警短信報警(溫度,可燃氣體);
    發表于 10-31 20:29

    【Aworks申請】智能實驗室無人管理系統

    實驗室無人管理系統。項目描述: 本項目的主要研究內容是設計并實現智能實驗室無人管理系統。基于上述
    發表于 06-30 09:50

    【FireBLE申請】無線智能實驗室管理系統的研究

    的疏忽,導致實驗室某些設備在無人時仍然處于工作狀態,增加了安全隱患;另外,有些實驗,需要在某一特定時刻打開設備來工作,但是由于沒有人在現場而無法完成。如果能夠開發出一套無線智能
    發表于 07-23 11:36

    智慧實驗室教學管理系統平臺開發設計案例

    自行申請申報。智慧實驗室教學管理系統實驗室開放預約管理實驗室項目開放安排以及
    發表于 12-09 16:20

    lims實驗室管理系統是什么?實驗室信息管理系統介紹!

    采用實驗室信息管理系統或LIMS可能是提高實驗室生產力的最有效方法之一。此頁面的目的是幫助目前未使用LIMS的科學家和實驗室人員分析采用LI
    發表于 11-03 11:17

    實驗室lims系統解決方案

    ?lims實驗室信息管理系統是一種軟件產品,旨在幫助實驗室跟蹤其設備、樣品和測試結果,管理其工作
    發表于 11-04 11:18

    實驗室儀器設備管理制度

    實驗室儀器設備管理制度一、儀器設備管理辦法一、為了加強我校實驗室的建設和管理,保障學校的教育質量和科學研究水平,提高辦學效益,特制定本辦法。
    發表于 03-18 22:17 ?46次下載

    高校實驗室管理系統的設計與實現

    隨著我國高校教學體制的改革和完善,出現了一些較為成熟的 實驗室管理系統 ,但這些系統往往側重于資產設備管理方面,在
    發表于 08-15 09:45 ?0次下載
    高校<b class='flag-5'>實驗室</b><b class='flag-5'>管理</b><b class='flag-5'>系統</b>的設計與實現

    實驗室設備管理系統開發中的問題解決思路

    針對當前高校實驗室設備管理的現狀,基于現實的需求,采用了JSP技術與SQL Server數據庫開發研制實驗室設備管理系統,并結合開發中遇到的
    發表于 04-12 15:06 ?55次下載
    <b class='flag-5'>實驗室</b><b class='flag-5'>設備管理</b><b class='flag-5'>系統</b>開發中的問題解決思路

    基于二維碼及小程序的實驗室設備管理系統

    針對實驗室設備類型和數量繁多,造成設備管理工作復雜而繁瑣、實驗室管理人員的工作強度高和壓力大等問題,提出基于二維碼技術及微信小程序的
    發表于 04-23 10:11 ?8次下載
    基于二維碼及小程序的<b class='flag-5'>實驗室</b><b class='flag-5'>設備管理</b><b class='flag-5'>系統</b>

    計算機專業畢業設計-ASP+ACCESS實驗室設備管理系統(源代碼+論文)

    計算機專業畢業設計-ASP+ACCESS實驗室設備管理系統(源代碼+論文)(樹莓派 電源12v)-計算機專業畢業設計-ASP+ACCESS實驗室
    發表于 07-26 11:27 ?13次下載
    計算機專業畢業設計-ASP+ACCESS<b class='flag-5'>實驗室</b><b class='flag-5'>設備管理</b><b class='flag-5'>系統</b>(<b class='flag-5'>源代碼</b>+論文)

    Python版超市管理系統源代碼

    Python版超市管理系統源代碼,基于django+mysql安裝步驟
    的頭像 發表于 02-24 09:59 ?1755次閱讀
    <b class='flag-5'>Python</b>版超市<b class='flag-5'>管理</b><b class='flag-5'>系統</b><b class='flag-5'>源代碼</b>

    淺析RFID技術在學校實驗室管理中的應用

    一直以來,多數高校實驗室設備管理采取傳統手工方式,無法滿足當前高校的發展需求。同時,對于實驗室設備的資產進行清查時也多是通過掃描手寫編碼或是條形碼標簽的方式進行核實,這樣的盤查效率極低
    的頭像 發表于 12-13 16:48 ?503次閱讀
    淺析RFID技術在學校<b class='flag-5'>實驗室</b><b class='flag-5'>管理</b>中的應用

    實驗室設備定位管理系統

    實驗室設備定位管理系統是一種用于實驗室設備管理和定位的系統
    的頭像 發表于 01-10 16:13 ?847次閱讀
    主站蜘蛛池模板: 国模龙园园私拍337p| 成年ssswww中国女人| 色播五月婷婷| 欧美tube44videos| 国产色妞妞在线观看| 黄色毛片播放| 国产色妞妞在线视频免费播放| 国久久| 国产精品国产主播在线观看| 哺乳期xxxx视频| 夜夜网站| 男人资源网| 宅男噜噜噜66| 双性人皇上被c到哭| 与子乱刺激对白在线播放| 天堂在线中文字幕| 欧美日韩国产一区| 国产一级片免费| 午夜视频在线观看完整高清在线| 国产你懂| 狠狠狠色丁香婷婷综合久久88| 国产成人mv在线观看入口视频 | 久热操| 欧美第四色| 久久9热| 禁漫羞羞a漫入口| 五月婷婷激情| 欧美18同性gay视频| 广东毛片| 欧美tube44videos| 中文字幕在线一区二区在线| 综合99| 亚洲综合狠狠| 色免费网站| 国产性色视频| 日日干视频| 一级毛片日韩a欧美| 午夜免费的国产片在线观看| 天堂网| 久久国产精品夜色| 天天做天天爽天天谢|