一個使用表格的實例
表格來自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核心的槽和信號,事件的概念了,這個下次再說吧。