qt qcheckbox 响应 点击消息, 槽函数传递一个参数

void(QCheckBox:: *pCheckBox)(bool bchecked) = &QCheckBox::clicked;

  connect(m_pLichengModeCheckBox, pCheckBox, this, &UITestConfig::onLichengMode);



void UIConfig::onLichengMode(bool bChecked)//2024.3.8
{
    //设置激光器延时时间  nLaserms范围 0-255  默认4ms

    unsigned char pdata[1] = {0};
    if(bChecked)
    {
        pdata[0] = 0x01;
        cameramgr_ns::setComFunc(0x2a,    pdata);//20mm
    }
    else
    {
        pdata[0] = 0x00;
        cameramgr_ns::setComFunc(0x2a, pdata);//50mm
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用QItemDelegate来实现。你需要创建一个自定义的QItemDelegate,并重写createEditor和setEditorData函数,将QCheckBox设置为editor,并在editor上安装一个事件过滤器来捕获鼠标点击事件。当QCheckBox点击时,它会发出一个stateChanged信号,你可以在该信号的函数中调用QTableWidget的itemClicked信号。 以下是一个简单的示例代码: ```python from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QItemDelegate, QCheckBox from PyQt5.QtCore import Qt class CheckBoxDelegate(QItemDelegate): def createEditor(self, parent, option, index): editor = QCheckBox(parent) editor.installEventFilter(self) return editor def setEditorData(self, editor, index): value = index.model().data(index, Qt.EditRole) editor.setChecked(value) def eventFilter(self, editor, event): if event.type() == Qt.MouseButtonRelease and event.button() == Qt.LeftButton: self.commitData.emit(editor) self.closeEditor.emit(editor, QItemDelegate.NoHint) return True return super().eventFilter(editor, event) class TableWidget(QTableWidget): def __init__(self, parent=None): super().__init__(parent) self.setItemDelegateForColumn(0, CheckBoxDelegate(self)) self.itemClicked.connect(self.on_item_clicked) def on_item_clicked(self, item): print("Item clicked:", item.row(), item.column()) if __name__ == '__main__': import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) table = TableWidget() table.setColumnCount(2) table.setRowCount(2) table.setItem(0, 0, QTableWidgetItem()) table.setItem(1, 0, QTableWidgetItem()) table.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个TableWidget,并在第一列上设置了QCheckBox。我们使用CheckBoxDelegate来设置QCheckBox作为editor,并在editor上安装了一个事件过滤器。当QCheckBox点击时,它会发出一个stateChanged信号,CheckBoxDelegate的eventFilter函数会捕获该事件,并在self.commitData.emit(editor)中发出commitData信号。在TableWidget的构造函数中,我们将itemClicked信号连接到on_item_clicked函数,以便在QTableWidget的项目被单击时调用该函数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值