• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • python+pyqt實現:將數據從excel表中導出到qt的下拉列表框(QComboBox)中

    標簽: 基于百度API人臉識別課堂簽到系統  python

    1. 最近在完善之前做的一個基于人臉識別的打卡簽到系統,在添加人臉信息時,手動輸入學生信息太慢了,因此改進,增加一個新的功能:手動點擊“導入數據”即將excel表中的數據加載到qt的下拉列表中
    2. 操作演示如下:

    在這里插入圖片描述

    1. 設計思路
      3.1 首先設置界面(包括導入按鈕,下拉列表)
      3.2 其次實現導入數據的功能
      3.3 然后實現下拉列表功能
      3.4 最后導入數據和下來列表的結合
    2. 代碼

    import sys
    import pandas as pd
    from PyQt5.QtWidgets import *
    
    class ImportData(QWidget):
        def __init__(self,parent=None):
            super(ImportData, self).__init__(parent)
            #設置標題
            self.setWindowTitle('導入數據到下拉列表的例子')
            #設置初始界面大小
            # 設置窗口的長寬
            self.resize(300,200)
            #增加一個'導入數據'的按鈕
            self.button = QPushButton('導入數據')
            #布局
            layout=QVBoxLayout()
            #創建顯示的內容,默認空白
            self.btn1=QLabel('')
    
            #實例化QComBox對象
            self.cb=QComboBox()
            #當下拉索引發生改變時發射信號觸發綁定的事件
            self.cb.currentIndexChanged.connect(self.selchange)
            #控件添加到布局中,設置布局
            layout.addWidget(self.button)#將按鈕導入布局
            layout.addWidget(self.cb)
            layout.addWidget(self.btn1)
            self.setLayout(layout)
            # 導入數據按鈕,鏈接導入函數
            self.button.clicked.connect(self.import_data)
    
        def import_data(self):
            # 打開對話框,獲取要導出的數據的文件名
            # 獲取excel表中的數據
            # "./test.xls"也行
            filename, rel = QFileDialog.getOpenFileName(self, "導入數據", ".", "EXCEL(*.xlsx)")
            print(filename)
            path = filename
            data = pd.read_excel(path, None)
            print("ok")
            print(data.keys())
            for sh_name in data.keys():
                print('sheet_name的名字是:', sh_name)
                sh_data = pd.DataFrame(pd.read_excel(path, sh_name))
                # 再寫一個for循環用于顯示excel表中的信息
                for l in sh_data['姓名']:
                    self.cb.addItem(l)
                    print(sh_data['姓名'])
            self.cb.currentIndexChanged.connect(self.selchange)
    
        #用于顯示鼠標點擊的內容
        def selchange(self,i):
            #標簽用來顯示選中的文本
            #currentText():返回選中選項的文本
            self.btn1.setText(self.cb.currentText())
            #輸出選項集合中每個選項的索引與對應的內容
            #count():返回選項集合中的數目
            for count in range(self.cb.count()):
                print('Item'+str(count)+'='+self.cb.itemText(count))
                print('current index',i,'selection changed',self.cb.currentText())
    
    if __name__ == '__main__':
        app=QApplication(sys.argv)
        importdata = ImportData()
        importdata.show()
        sys.exit(app.exec_())
    
    1. 可以直接將代碼拷貝到新建的py文件中運行。另外excel表中的第一列是姓名,可以在代碼中做修改。

    在這里插入圖片描述

    1. 是在另外一個博主的基礎上做的。見鏈接:PyQt5基本控件詳解之QComboBox(九)
    2. 關于下拉列表框的詳細講解見鏈接:PyQT5控件:下拉列表框(QComboBox)
    3. 關于pyqt5操作手冊鍵連接:PyQt5-Chinese-tutorial
    版權聲明:本文為xiaoren886原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/xiaoren886/article/details/109000903

    智能推薦

    將指定數據按照Excel導出到指定位置以及讀取指定位置下Excel表中的數據

    網上查閱了一些數據,但是很多代碼不全,或者存在一些bug,以及有些數據內容寫死,不方便多種場合使用,以下,做了一個簡單的封裝滿足一些簡單功能的操作。(前端只需要傳遞給后臺所需要的參數就可以實現以下功能) 公用的部分: 下面功能的實現,需要導入3個jar包,主要是poi的包(詳情請看備注) 實體類: 為了調用方便,我又添加了兩個getString和setString的方法,主要是用來方便后面代碼的調...

    如何將數據導出到excel文件中。

    網上看了很多大神的博客,自己整理了下方法,整體可以歸類為兩種: 一:將表格的數據轉化為xls,并導入excel中 此處將table包裝成一個html文檔,“x:Name”設置表格分頁的名字,“x:DisplayGridlines”設置表格顯示網格線;這里用了反向單引號`,主要是為了讓template 字符串看到更有層次感。 接下來就是調用常規的Blo...

    使用poi將數據導出到excel中

    使用XSSF將List<MenuExcel>中的數據導出到excel表中 導入依賴...

    將數據庫中的表結構導出到excel中(寫數據庫設計說明書)

    然后導出表格進行表格合并 https://jingyan.baidu.com/article/c1a3101e76189fde656deb93.html...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡