1:动态渲染数据+动态添加控件(按钮,进度条)

class MainWindow(QWidget, Ui_MainFrom):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
# #去掉标题头
# self.setWindowFlags(Qt.FramelessWindowHint)
# self.m_flag = False
self.Button = QPushButton(self)
self.Button.setGeometry(QtCore.QRect(880, 80, 93, 41))
# 列表显示
self.tableWidget.setColumnCount(5)
# self.tableWidget.setRowCount(3)
self.tableWidget.setHorizontalHeaderLabels(('视频网站','视频标题','播放地址','下载进度','操作',))
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) # 禁止编辑
# 取数据库数据 输出来是个列表
sortInfo = [('', 1, 1,),('', 1, 1, ),('', 1, 1,)]
# 动态渲染数据
for row, row_data in enumerate(sortInfo):
self.tableWidget.insertRow(row) # 插入行
for column in range(len(row_data)+2): # 需要多插入2列
# 如果遍历数小于需要插入的函数,就显示空
if column < len(row_data):
self.tableWidget.setItem(row, column, QtWidgets.QTableWidgetItem(str(row_data[column])))
# 如果遍历数等于需要插入的函数
if column == len(row_data):
# 传入当前id
print("row_data[0]",row+1)
# 添加两列 进度条 按钮
self.tableWidget.setCellWidget(row, column, self.ProgressBar(str(row_data[0])))
self.tableWidget.setCellWidget(row, column+1, self.buttonForRow(str(row_data[0]))) # 进度条
def ProgressBar(self, id):
widget = QWidget()
# 进度条
statusBar = QProgressBar()
statusBar.setStyleSheet(''' text-align : center;
background-color : LightCoral;
height : 30px;
''')
hLayout = QHBoxLayout()
hLayout.addWidget(statusBar)
widget.setLayout(hLayout)
return widget # 列表内添加按钮
def buttonForRow(self,id):
widget = QWidget()
# 路径
downloadPath = QPushButton('路径')
downloadPath.setStyleSheet(''' text-align : center;
background-color : NavajoWhite;
height : 30px;
border-style: outset;
font : 13px ''') # 槽函数
downloadPath.clicked.connect(lambda:downloadPath_action.downloadPath((id))) # 下载
downLoad = QPushButton('下载')
downLoad.setStyleSheet(''' text-align : center;
background-color : DarkSeaGreen;
height : 30px;
border-style: outset;
font : 13px; ''') # 删除
deleteBtn = QPushButton('删除')
deleteBtn.setStyleSheet(''' text-align : center;
background-color : LightCoral;
height : 30px;
border-style: outset;
font : 13px; ''') hLayout = QHBoxLayout()
hLayout.addWidget(downloadPath)
hLayout.addWidget(downLoad)
hLayout.addWidget(deleteBtn)
hLayout.setContentsMargins(5, 2, 5, 2)
widget.setLayout(hLayout) return widget def main():
app = QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_()) if __name__ == "__main__":
main()

【Pyqt5】之高级控件QTableWidget的使用的更多相关文章

  1. PyQt5——高级控件

    PyQt5高级控件使用方法详见:https://blog.csdn.net/jia666666/article/list/4?t=1& PyQt5高级控件汇总: 1.QTableView 2. ...

  2. Android高级控件--AdapterView与Adapter

    在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件 ...

  3. Android 高级控件(七)——RecyclerView的方方面面

    Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...

  4. Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现

    Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...

  5. Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

    Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...

  6. Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷

    Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...

  7. Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  8. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现

    Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...

  9. Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能

    Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...

随机推荐

  1. 04-2-object类型

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. hue mysql连接不上数据库排查

    由于CDH所有的组件都会进行agent检测,所以先到/var/log/cloudera-scm-agent(mysql所在节点进行日志排查),可以发现每次连接会产生一个log路径作为记录hue连接my ...

  3. 详解osg::ref_ptr

    首先,要使用ref_ptr的类必须继承自Referenced类(当然Referenced本身肯定也可以),这样才能使用->ref()和unref(),才能正确,ref_ptr其实本身是一个类,后 ...

  4. Luogu P2149 [SDOI2009]Elaxia的路线(最短路+记忆化搜索)

    P2149 [SDOI2009]Elaxia的路线 题意 题目描述 最近,\(Elaxia\)和\(w**\)的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们必须合理地安排两个人在一起的 ...

  5. HZOI20190828模拟32题解

    题面:https://www.cnblogs.com/Juve/articles/11428730.html chinese: 考虑$\sum\limits_{i=0}^{n*m}i*f_i$的意义: ...

  6. Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  7. Django项目:CRM(客户关系管理系统)--63--53PerfectCRM实现CRM客户报名流程缴费

    #urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...

  8. HTML5移动开发中的input输入框类型 (转)

    公司的项目开发过程中的,的用户体验忽略了.登录tel就用tel属性.新来的小伙伴提醒的.谢谢他 数字类型number 定义input类型为type="number"时,iOS显示数 ...

  9. 常用 docker 容器 使用

    mongo: 单点 docker run -idt --name=mongo --restart=always -p : -v /home/hylas/opt/mongo/data:/data/db ...

  10. bootstrab table+表格 select可编辑完整实例

    先看下效果图: ============================================================================================ ...