PyQt/QTableWidget/TableWidget.py
2021-07-13 14:52:26 +08:00

112 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# encoding: utf-8
"""
Created on 2017年4月21日
@author: weike32
@site: https://pyqt.site ,https://github.com/weike32
@email: 394967319@qq.com
@file: CopyContent
@description: 查阅了很多博客如果有异可以联系作者邮箱。本Demo仅作学习参考用保有后续相关权益。
"""
import sys
try:
from PyQt5 import QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
except ImportError:
from PySide2 import QtWidgets
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
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(6)
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.setItem(0, 5, QTableWidgetItem("进度条"))
# 添加表格的文字内容.
self.setHorizontalHeaderLabels(["第一行", "第二行", "第三行", "第四行", "第五行", "第六行"])
self.setVerticalHeaderLabels(["第一列", "第二列"])
# 设置表头
lbp = QLabel()
lbp.setPixmap(QPixmap("youPicture.png"))
self.setCellWidget(1, 1, lbp)
# 在表中添加一张图片
twi = QTableWidgetItem("Graph")
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)
# 添加一个进度条
self.progressBar = QtWidgets.QProgressBar(self)
self.progressBar.setProperty("value", 0)
self.progressBar.setObjectName("progressBar")
self.setCellWidget(1, 5, self.progressBar)
self.step = 0
self.timer = QTimer()
self.timer.setInterval(1000)
self.timer.start()
# 信号连接到槽
self.timer.timeout.connect(self.onTimerOut)
self.count = 0
def onTimerOut(self): # 重写timerEvent
self.count += 1
if self.count >= 100: # value >= 100时停止计时器
self.timer.stop()
print("结束")
# self.progressBar.setValue(self.step)
else:
print(self.count)
self.progressBar.setValue(self.count)
# return
# self.step += 1
if __name__ == '__main__':
app = QApplication(sys.argv)
myTable = MyTable()
myTable.show()
app.exit(app.exec_())