pyqt4,QTableWidget 动态添加控件,添加图片,右键菜单选项

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
#-*- coding:utf-8 -*-
#######line table 使用
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class MyWindow(QDialog,QWidget):
    def __init__(self,parent = None):
        super(MyWindow,self).__init__(parent)
        self.resize(400,400)
        self.mainlayout = QGridLayout(self)
        self.myTable = QTableWidget()
        self.mainlayout.addWidget(self.myTable)
        self.tableSetting()

    def tableSetting(self):
        self.myTable.setRowCount(3)########设置table的列数
        self.myTable.setColumnCount(3) #######设置table列数
        self.myTable.setColumnWidth(0,60)####设置第一列的宽度
        self.myTable.setHorizontalHeaderLabels([u"控件",u"  文字  ",u"图片"]) ######设置标题栏
        self.myTable.resizeColumnToContents(1) #####第二列根据标题自适应
        self.myTable.setSelectionBehavior(QAbstractItemView.SelectRows) ###设置一次选中一行
        self.myTable.setEditTriggers(QAbstractItemView.NoEditTriggers) ###设置表格禁止编辑
        self.myTable.setContextMenuPolicy(Qt.CustomContextMenu)######允许右键产生子菜单
        self.myTable.customContextMenuRequested.connect(self.generateMenu)   ####右键菜单
        #########设置表格内容
        self.setTableContext()

    def generateMenu(self,pos):
        print pos
        row_num = -1
        for i in self.myTable.selectionModel().selection().indexes():
            row_num = i.row()
        menu = QMenu()
        item1 = menu.addAction(u"选项一")
        item2 = menu.addAction(u"选项二")
        item3 = menu.addAction(u"选项三" )
        action = menu.exec_(self.myTable.mapToGlobal(pos))
        if action == item1:
            print u'您选了选项一,当前行文字内容是:',self.myTable.item(row_num,1).text()

        elif action == item2:
            print u'您选了选项二,当前行文字内容是:',self.myTable.item(row_num,1).text()

        elif action == item3:
            print u'您选了选项三,当前行文字内容是:',self.myTable.item(row_num,1).text()
        else:
            return

    def setTableContext(self):
        ctrlListCheckBox = [i for i in xrange(3)]
        for i in xrange(3):
            self.setRowData(i,ctrlListCheckBox)

    def setRowData(self,row,ctrl):
        ##########在table中添加控件
        ctrl[row] = QCheckBox()
        ctrl[row].setChecked(False)
        ctrl[row].clicked.connect(lambda:self.selectDev(ctrl[row].checkState(),row))
        self.myTable.setCellWidget(row,0,ctrl[row])
        ########table中添加文字
        nameItem = QTableWidgetItem("item"+str(row))
        self.myTable.setItem(row,1,nameItem)
        ########table中添加图片,线添加label控件 再添加图片
        self.label_pic = QLabel()
        self.label_pic.setPixmap(QPixmap(str(row)+".jpg"))
        self.myTable.setCellWidget(row,2,self.label_pic)

    def selectDev(self,check_state,row):
        print 'check_state:',check_state
        print 'row:',row

app=QApplication(sys.argv)
window=MyWindow()
window.show()
app.exec_()
pyqt 动态增加控件动态删除控件示例 PyQt5:在scrollArea中动态添加和删除控件 阅读详情

相关推荐

Qt--QTablewidgets 表格插入图片,且可以自动调整图片的大小

QTablewidget 调整表格图片大小 def set_qtableWidgets(self,filName_path,head_labels,width=100,height=100): self.tableWidget.update() images_list=[] try: images_list = os.listdir(filName_path) if (len(images_list) =

jiayou2021的博客 2330

Pyqt5 QTableWidget/QTableView 行表头添加复选框全选功能

pyqt5 QTableWidget/QTableView表头复选框源码

PyQt5桌面GUI开发:从信号槽到多线程的Python跨平台实践

桌面GUI开发是软件工程中的重要领域,它涉及创建用户可直接交互的图形界面应用程序。其核心原理在于事件驱动编程模型,通过响应用户输入和系统事件来更新界面状态。在技术价值层面,优秀的GUI框架能显著提升开发效率、增强应用稳定性和跨平台兼容性。Python作为主流编程语言,在数据分析、机器学习等领域广泛应用,而PyQt5正是连接Python生态与专业级桌面开发的关键桥梁。它基于成熟的Qt框架,通过信号与槽机制实现松耦合通信,支持模型/视图架构处理大数据展示,并提供了QThread解决方案来避免界面卡顿。这些特性使

weixin_34277853的博客 546

PyQt动态向表格中添加控件是一个常见需求。本文将介绍如何在 PyQt 表格中添加控件,并且使用 Python 代码进行实现。

这个表格的创建可以通过 Qt Designer 工具来完成,也可以使用代码自己创建。在 PyQt动态向表格中添加控件是一个常见需求。本文将介绍如何在 PyQt 表格中添加控件,并且使用 Python 代码进行实现。上述代码会向第一行第二列的单元格中添加一个按钮,并且为这个按钮添加了一个点击事件。至此,我们已经知道了如何在 PyQt 表格中添加控件。以上代码可以帮助您理解如何实现表格中添加控件的功能。上述代码会创建一个包含 3 行 2 列的表格,并且在每个单元格中填写了一些文本。

2301_78484069的博客 1048

pyqt-QTableWidget使用

pyqt-QTableWidget使用 QTableWidget中各种触发的信号和操作 PyQT5 中的QTableWidget 信号 https://blog.csdn.net/yfcjava/article/details/103501364 QTable插入图片 PyQt5 QTable插入图片动态更新的实例 https://www.jb51.net/article/163358.html ...

Snfiltration 229

PyQt学习笔记:动态添加控件

预期功能:界面上有一个按钮,点击之后,能够在界面上添加一个控件组,控件组内包括:label,LineEdit,ToolButton等,能多次添加,bqie

薛定谔的哈士奇……的博客 6289

PyQt5右键菜单终极指南】:手把手教你实现QTableWidget右键菜单功能

掌握PyQt5 QTableWidget添加右键菜单的完整实现方法,解决上下文操作难题。涵盖信号槽机制、菜单事件绑定及常用功能示例,适用于数据表格操作场景。手把手教学,代码清晰易懂,值得收藏。

CodePulse的博客 1084

pyqt5v QTableWidget

前言 QTableWidget是Qt程序中常用的显示数据表格的控件,类似于c#中的DataGrid。QTableWidget是QTableView的子类,它使用标准的数据模型,并且其单元数据是通过QTableWidgetItem对象来实现的,使用QTableWidget时就需要QTableWidgetItem。用来表示表格中的一个单元格,整个表格就是用各个单元格构建起来的 QTableWidget类中的常用方法 方法 描述 setROwCount(int row) 设置QTableWi

EmbeddedCoder 的CSDN博客 1522

pyqt鸟瞰

内置银行家算法

猫头军师兵书 1210

PyQt5入门指南:从零构建专业级Python桌面应用

图形用户界面(GUI)编程是现代软件开发的核心技能之一,它通过可视化组件实现人机交互,极大提升了软件的易用性和功能性。其底层原理基于事件驱动模型,通过响应用户操作来执行相应逻辑。在Python生态中,PyQt5作为Qt框架的Python绑定,提供了强大的技术价值,能够帮助开发者快速构建跨平台、功能丰富的桌面应用程序。PyQt5不仅支持复杂的界面布局和丰富的控件库,还通过信号与槽机制实现了松耦合的组件通信,显著提升了代码的可维护性。在应用场景上,它广泛适用于数据可视化工具、内部管理系统、科学计算界面等需要专业

weixin_34326558的博客 329

PyQt5桌面GUI开发全解析:从核心原理到项目实战

桌面应用开发是软件工程的重要领域,其核心在于构建用户与系统交互的图形界面。PyQt5作为Python对Qt框架的完整绑定,继承了Qt近30年积累的跨平台能力与丰富组件库,通过信号槽机制实现高效的事件驱动编程。这一技术组合让开发者能够用Python快速构建专业级桌面软件,同时保持与原生C++应用相近的性能表现。在工程实践中,PyQt5特别适合数据处理工具、科学计算平台和工业控制软件的开发,其成熟的生态和稳定的API使其成为众多生产项目的首选。本文深入探讨PyQt5在GUI开发中的核心优势,并解析其与PySid

weixin_30417487的博客 298

基于YOLOv8与PyQt5的水稻害虫智能检测系统开发

目标检测是计算机视觉的核心技术,通过深度学习算法实现物体识别与定位。YOLOv8作为当前最先进的实时检测框架,采用anchor-free设计和任务对齐机制,在保持高速推理的同时提升小目标检测能力。结合PyQt5跨平台GUI框架,可构建完整的智能检测系统。这类技术在农业植保领域具有重要应用价值,如水稻害虫自动识别系统能显著提升病虫害监测效率。系统通过5229张标注图像训练,实现6类常见害虫85%以上的检测准确率,单图处理时间小于0.1秒,为精准农业提供可靠的技术支持。

weixin_30896825的博客 298

基于YOLOv8与PyQt5的120种犬类智能识别系统开发实战

目标检测是计算机视觉的核心任务之一,旨在定位并识别图像中的物体。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测物体的边界框与类别。这项技术的价值在于将视觉信息转化为结构化数据,广泛应用于安防监控、自动驾驶、工业质检及智能零售等领域。本文聚焦于细粒度目标识别这一具体挑战,以犬类品种识别为应用场景,详细阐述了如何利用YOLOv8这一先进的实时目标检测框架,结合PyQt5桌面开发技术,构建一个包含完整数据处理、模型训练、界面开发与部署流程的实战项目。项目涉及数据增强、模型调优、多线程界面设计等关键工

weixin_30596343的博客 438

PyQt Designer入门:可视化GUI设计与Python桌面应用开发实战

图形用户界面(GUI)开发是软件工程中的重要领域,它通过可视化组件实现人机交互。其核心原理在于事件驱动编程模型,即用户操作触发事件,程序通过信号与槽机制响应。这项技术的价值在于将界面逻辑与业务逻辑分离,大幅提升开发效率和可维护性。在应用场景上,GUI工具广泛应用于数据分析可视化、自动化脚本封装、内部工具开发等领域。PyQt Designer作为PyQt5的官方界面设计器,正是实现这一目标的利器。它采用拖拽式操作,支持布局管理器和样式表(QSS),能快速生成.ui文件,并通过pyuic5工具与Python代码

weixin_34320724的博客 331

YOLO目标检测实战:从数据准备到PyQt5桌面应用开发全流程

目标检测是计算机视觉领域的核心技术之一,它通过定位和识别图像中的多个对象,解决了传统图像分类任务无法处理的“在哪里”和“是什么”问题。其核心原理通常基于深度学习模型,如YOLO系列,通过单次前向传播即可完成边界框回归和类别预测,在速度和精度之间取得平衡。这项技术的价值在于将算法能力转化为实际可用的产品,广泛应用于安防监控、自动驾驶、工业质检等场景。本文以手写数字识别为例,详细介绍了如何利用YOLO模型和PyQt5框架,构建一个完整的桌面应用程序,涵盖了从数据集准备、模型训练调参到图形界面封装和系统部署的全过

aodanchui1057的博客 461

基于YOLOv8与PyQt5的智能肺炎X光辅助诊断系统开发实战

目标检测是计算机视觉的核心任务之一,旨在识别图像中特定目标的位置与类别。其原理是通过深度学习模型,如卷积神经网络,自动学习图像特征并预测边界框与类别概率。该技术在工业质检、自动驾驶、安防监控等领域具有重要价值。在医疗影像分析中,目标检测技术能精准定位病灶区域,为医生提供直观的辅助诊断信息。本文聚焦于肺炎X光片的智能分析,详细阐述了如何利用YOLOv8这一先进的深度学习框架进行病灶检测,并结合PyQt5构建图形用户界面,实现从数据准备、模型训练到可交互诊断工具的全流程工程实践。

weixin_34323858的博客 439

基于YOLO系列与PyQt5的夜间红外小目标检测系统全流程解析

目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中定位并识别出感兴趣的目标。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并利用回归或分类头输出目标的位置与类别。这项技术的价值在于能自动化完成海量视觉数据的分析,极大地提升了安防监控、自动驾驶、工业质检等场景的效率和精度。在众多应用场景中,夜间或低光照环境下的目标检测尤为关键且富有挑战。本文聚焦于利用红外热成像技术解决这一难题,并重点探讨了如何集成YOLO系列算法与PyQt5框架,构建一套完整的红外小目标检测系统。该系统通过引入Mosaic数

weixin_30697239的博客 403

基于YOLOv5的工业瓶盖缺陷检测系统:从模型训练到PyQt5界面开发全流程实战

目标检测是计算机视觉的核心任务之一,旨在识别图像中特定目标的位置与类别。其原理通常基于深度学习模型,通过卷积神经网络提取特征并进行分类与定位。这项技术的核心价值在于将智能感知能力赋予机器,实现自动化、高精度的视觉分析。在工业制造领域,自动化质检是目标检测的典型应用场景,它能够替代传统人眼检测,大幅提升生产效率和产品一致性。本文聚焦于工业质检中的具体实践,详细介绍了如何利用YOLOv5这一经典目标检测模型,构建一个完整的瓶盖缺陷检测系统。内容涵盖从数据采集标注、模型训练调优,到推理引擎封装、性能优化,并最终通

weixin_33743661的博客 347

基于YOLO与PyQt5的风力涡轮机智能检测系统实战指南

目标检测是计算机视觉的核心任务之一,旨在识别图像中的特定物体并定位其位置。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并回归出目标的边界框与类别。这项技术在工业自动化、安防监控、自动驾驶等领域具有极高的技术价值,是实现机器视觉感知的关键。在新能源运维领域,风力涡轮机的定期巡检是一项重要且高成本的作业。传统人工巡检方式效率低下且存在安全风险。本文聚焦于如何利用先进的YOLO系列目标检测模型,结合PyQt5桌面框架,构建一个高效、精准的风力涡轮机智能检测系统。该系统能够自动识别风机部件(如叶片、塔筒)

weixin_30800807的博客 302
上一篇: pyqt4 绘制点,椭圆,线,矩形
下一篇: pyqt4 利用信号槽在子线程里面操作Qt界面
ABigCaiBird
博客等级 码龄11年 35粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值