PyQt5 表格


一個使用表格的實例

表格來自QTableWidget類,包含很多可設置的選項,詳情查看qt官方文檔
我的例子實現了,設置表頭,調整單元格大小,插入控件(圖片,日期,下拉框),使用還是很簡單的,就是個人英語太渣,讀文檔有些吃力。
大部分參考這個網站

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

class MyTable(QTableWidget):
    def __init__(self,parent=None):
        super(MyTable, self).__init__(parent)
        self.setWindowTitle("我是一個表格")
        self.setWindowIcon(QIcon("male.png"))
        self.resize(920, 240)
        self.setColumnCount(5)
        self.setRowCount(2)
        #設置表格有兩行五列。
        self.setColumnWidth(0, 200)
        self.setColumnWidth(4, 200)
        self.setRowHeight(0, 100)
        #設置第一行高度為100px,第一列寬度為200px。

        self.table()

    def table(self):
        self.setItem(0,0,QTableWidgetItem("           你的名字"))
        self.setItem(0,1,QTableWidgetItem("性別"))
        self.setItem(0,2,QTableWidgetItem("出生日期"))
        self.setItem(0,3, QTableWidgetItem("職業"))
        self.setItem(0,4, QTableWidgetItem("收入"))
        #添加表格的文字內容.
        self.setHorizontalHeaderLabels(["第一行", "第二行", "第三行", "第四行", "第五行"])
        self.setVerticalHeaderLabels(["第一列", "第二列"])
        #設置表頭
        lbp = QLabel()
        lbp.setPixmap(QPixmap("Male.png"))
        self.setCellWidget(1,1,lbp)
        #在表中添加一張圖片
        twi = QTableWidgetItem("      新海誠")
        twi.setFont(QFont("Times", 10, ))
        self.setItem(1,0,twi)
        #添加一個自己設置了大小和類型的文字。
        dte = QDateTimeEdit()
        dte.setDateTime(QDateTime.currentDateTime())
        dte.setDisplayFormat("yyyy/MM/dd")
        dte.setCalendarPopup(True)
        self.setCellWidget(1,2,dte)
        #添加一個彈出的日期選擇,設置默認值為當前日期,顯示格式為年月日。
        cbw = QComboBox()
        cbw.addItem("醫生")
        cbw.addItem("老師")
        cbw.addItem("律師")
        self.setCellWidget(1,3,cbw)
        #添加了一個下拉選擇框
        sb = QSpinBox()
        sb.setRange(1000,10000)
        sb.setValue(5000)#設置最開始顯示的數字
        sb.setDisplayIntegerBase(10)#這個是顯示數字的進制,默認是十進制。
        sb.setSuffix("元")#設置后輟
        sb.setPrefix("RMB: ")#設置前輟
        sb.setSingleStep(100)
        self.setCellWidget(1,4,sb)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    myTable = MyTable()
    myTable.show()
    app.exit(app.exec_())

插入文字是用setItem,插入控件是用setCellItem,PyQt設計上很面對對象,新手不太適應,但在不斷啃官方文檔和讀寫代碼中,慢慢就熟悉了,感覺提升很大。要想用好表格除了學習表格本事還要十分了解控件,不過我覺得表格最重要的功能是顯示信息和選擇內容,這就需要了解PyQt核心的槽和信號,事件的概念了,這個下次再說吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM