一、創(chuàng)建一個(gè)表格
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
hhbox = QHBoxLayout() #橫向布局
tableWidget = QTableWidget() #創(chuàng)建一個(gè)表格
tableWidget.setRowCount(5)
tableWidget.setColumnCount(4) #5行4列
tableWidget.setHorizontalHeaderLabels(['第一行列','第二列','第三列','第四列'])
tableWidget.setVerticalHeaderLabels(['第一行','第二行','第三行','第四行','第五行'])
#表頭
hhbox.addWidget(tableWidget) #把表格加入布局
self.setLayout(hhbox) #創(chuàng)建布局
self.setWindowTitle("表格")
self.resize(600,250)
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
dlg = Example()
sys.exit(app.exec_())
二骡技、向表格內(nèi)添加內(nèi)容
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Example(QWidget):
def __init__(self,parent=None):
super(Example, self).__init__(parent)
hhbox = QHBoxLayout() #橫向布局
self.tableWidget = QTableWidget()
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(2) #設(shè)置表格有兩行五列
self.table_sitting()
hhbox.addWidget(self.tableWidget) #把表格加入布局
self.setLayout(hhbox) #創(chuàng)建布局
self.setWindowTitle("我是一個(gè)表格")
self.setWindowIcon(QIcon("icon.png"))
self.resize(920, 240)
self.show()
def table_sitting(self):
self.tableWidget.setItem(0,0,QTableWidgetItem(" 你的名字"))
self.tableWidget.setItem(0,1,QTableWidgetItem("性別"))
self.tableWidget.setItem(0,2,QTableWidgetItem("出生日期"))
self.tableWidget.setItem(0,3, QTableWidgetItem("職業(yè)"))
self.tableWidget.setItem(0,4, QTableWidgetItem("收入"))
#添加表格的文字內(nèi)容.
self.tableWidget.setHorizontalHeaderLabels(["第一行", "第二行", "第三行", "第四行", "第五行"])
self.tableWidget.setVerticalHeaderLabels(["第一列", "第二列"])
#設(shè)置表頭
lbp = QLabel()
lbp.setPixmap(QPixmap("Male.png"))
self.tableWidget.setCellWidget(1,1,lbp)
#在表中添加一張圖片
twi = QTableWidgetItem(" 新海誠(chéng)")
twi.setFont(QFont("Times", 10, ))
self.tableWidget.setItem(1,0,twi)
#添加一個(gè)自己設(shè)置了大小和類型的文字。
dte = QDateTimeEdit()
dte.setDateTime(QDateTime.currentDateTime())
dte.setDisplayFormat("yyyy/MM/dd")
dte.setCalendarPopup(True)
self.tableWidget.setCellWidget(1,2,dte)
#添加一個(gè)彈出的日期選擇,設(shè)置默認(rèn)值為當(dāng)前日期,顯示格式為年月日酌予。
cbw = QComboBox()
cbw.addItem("醫(yī)生")
cbw.addItem("老師")
cbw.addItem("律師")
self.tableWidget.setCellWidget(1,3,cbw)
#添加了一個(gè)下拉選擇框
sb = QSpinBox()
sb.setRange(1000,10000)
sb.setValue(5000) #設(shè)置最開始顯示的數(shù)字
sb.setDisplayIntegerBase(10)#這個(gè)是顯示數(shù)字的進(jìn)制磺箕,默認(rèn)是十進(jìn)制。
sb.setSuffix("元") #設(shè)置后輟
sb.setPrefix("RMB: ") #設(shè)置前輟
sb.setSingleStep(100)
self.tableWidget.setCellWidget(1,4,sb)
if __name__ == "__main__":
app = QApplication(sys.argv)
dlg = Example()
sys.exit(app.exec_())
三抛虫、另外的形式
在上面的例子以及前面的一些小widget都是通過布局呈現(xiàn)松靡,也可以直接呈現(xiàn)
(一)
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
class Example(QTableWidget):
def __init__(self):
super().__init__()
self.setRowCount(5)
self.setColumnCount(4) #5行4列
self.setHorizontalHeaderLabels(['第一行列','第二列','第三列','第四列'])
self.setVerticalHeaderLabels(['第一行','第二行','第三行','第四行','第五行'])
#表頭
self.setWindowTitle("表格")
self.resize(600,250)
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
table = Example()
sys.exit(app.exec_())
(二)
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("我是一個(gè)表格")
self.setWindowIcon(QIcon("icon.png"))
self.resize(920, 240)
self.setColumnCount(5)
self.setRowCount(2)
#設(shè)置表格有兩行五列
self.setColumnWidth(0, 200)
self.setColumnWidth(4, 200)
self.setRowHeight(0, 100)
#設(shè)置第一行高度為100px,第一列寬度為200px莱褒。
self.table_sitting()
def table_sitting(self):
self.setItem(0,0,QTableWidgetItem(" 你的名字"))
self.setItem(0,1,QTableWidgetItem("性別"))
self.setItem(0,2,QTableWidgetItem("出生日期"))
self.setItem(0,3, QTableWidgetItem("職業(yè)"))
self.setItem(0,4, QTableWidgetItem("收入"))
#添加表格的文字內(nèi)容.
self.setHorizontalHeaderLabels(["第一行", "第二行", "第三行", "第四行", "第五行"])
self.setVerticalHeaderLabels(["第一列", "第二列"])
#設(shè)置表頭
lbp = QLabel()
lbp.setPixmap(QPixmap("Male.png"))
self.setCellWidget(1,1,lbp)
#在表中添加一張圖片
twi = QTableWidgetItem(" 新海誠(chéng)")
twi.setFont(QFont("Times", 10, ))
self.setItem(1,0,twi)
#添加一個(gè)自己設(shè)置了大小和類型的文字击困。
dte = QDateTimeEdit()
dte.setDateTime(QDateTime.currentDateTime())
dte.setDisplayFormat("yyyy/MM/dd")
dte.setCalendarPopup(True)
self.setCellWidget(1,2,dte)
#添加一個(gè)彈出的日期選擇,設(shè)置默認(rèn)值為當(dāng)前日期,顯示格式為年月日广凸。
cbw = QComboBox()
cbw.addItem("醫(yī)生")
cbw.addItem("老師")
cbw.addItem("律師")
self.setCellWidget(1,3,cbw)
#添加了一個(gè)下拉選擇框
sb = QSpinBox()
sb.setRange(1000,10000)
sb.setValue(5000)#設(shè)置最開始顯示的數(shù)字
sb.setDisplayIntegerBase(10)#這個(gè)是顯示數(shù)字的進(jìn)制阅茶,默認(rèn)是十進(jìn)制。
sb.setSuffix("元")#設(shè)置后輟
sb.setPrefix("RMB: ")#設(shè)置前輟
sb.setSingleStep(100)
self.setCellWidget(1,4,sb)
if __name__ == '__main__':
app = QApplication(sys.argv)
myTable = MyTable()
myTable.show()
app.exit(app.exec_())