QTableWidget 实现添加 QCheckBox

这篇具有很好参考价值的文章主要介绍了QTableWidget 实现添加 QCheckBox。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、添加复选框QCheckBox初始化默认状态,效果图
qtablewidget checkbox,QT,嵌入式,ui,qt,开发语言
主要代码:

void MainWindow::setTableInfo()
{
    QTableWidgetItem *xh_item;
    QTableWidgetItem *info_item;
    for(int i = 0;i < 2;i++)
    {
        xh_item = new QTableWidgetItem(QString::number(i));
        info_item = new QTableWidgetItem("*************");
        ui->m_table->setItem(i,0,xh_item);
        ui->m_table->setItem(i,1,info_item);
    }

    //添加复选框
    QCheckBox * pCheckBox ;
    QWidget * pBoxWidget;
    QHBoxLayout * hBox ;
    for(int j = 0;j < 2;j++)
    {
        pCheckBox = new QCheckBox();
        pBoxWidget = new QWidget(this);
        hBox = new QHBoxLayout();

        //调整框的大小,添加选中图片
        pCheckBox->setStyleSheet("QCheckBox::indicator{width:30px;height:30px}"
                                 "QCheckBox::indicator:checked {image: url(:/new/prefix1/true.png);}");
        hBox->addWidget(pCheckBox);

        //设置默认选中状态
        pCheckBox->setChecked(true);
        hBox->setMargin(0);
        hBox->setAlignment(pCheckBox,Qt::AlignCenter);
        pBoxWidget->setLayout(hBox);
        ui->m_table->setCellWidget(j,2,pBoxWidget);
    }

}

二、添加两个复选框QCheckBox的互斥功能,同时只能有一个选中 效果图
qtablewidget checkbox,QT,嵌入式,ui,qt,开发语言

qtablewidget checkbox,QT,嵌入式,ui,qt,开发语言
qtablewidget checkbox,QT,嵌入式,ui,qt,开发语言

主要代码:

 QCheckBox * pCheckBox ;
    QWidget * pBoxWidget;
    QHBoxLayout * hBox ;
    for(int j = 0;j < 2;j++)
    {
        pCheckBox = new QCheckBox();
        pBoxWidget = new QWidget(this);
        hBox = new QHBoxLayout();

        //调整框的大小,添加选中图片
        pCheckBox->setStyleSheet("QCheckBox::indicator{width:30px;height:30px}"
                                 "QCheckBox::indicator:checked {image: url(:/new/prefix1/true.png);}");
        hBox->addWidget(pCheckBox);

        //设置默认选中状态
       // pCheckBox->setChecked(true);
        hBox->setMargin(0);
        hBox->setAlignment(pCheckBox,Qt::AlignCenter);
        pBoxWidget->setLayout(hBox);
        ui->m_table->setCellWidget(j,2,pBoxWidget);
        m_checkBoxList.append(pCheckBox);
    }
    mutexCheckBox(m_checkBoxList, false);

互斥代码:

 for(auto check:checkBoxList)
        {
            if(check)
            {
                QCheckBox::connect(check,&QCheckBox::clicked,[=]
                {
                    Qt::CheckState checkState = check->checkState();
                    for(auto it:checkBoxList)
                    {
                        if(it && it != check)
                        {
                            if(checkState == Qt::Unchecked)
                            {
                                if(unchecked)
                                {
                                    it->setCheckState(Qt::Checked);
                                }
                            }
                            else
                            {
                                it->setCheckState(Qt::Unchecked);
                            }
                        }
                    }
                });
            }
        }

数据选中判断文章来源地址https://www.toymoban.com/news/detail-547928.html

 QString text;
    for(int i= 0;i<m_checkBoxList.size();i++)
       {
           if(m_checkBoxList[i]->isChecked())
           {
              QString str = ui->m_table->item(i,0)->text();
              text = QString::fromLocal8Bit("选中第");

              text.append(str).append(QString::fromLocal8Bit("行数据"));
              ui->m_text->setText(text);
              return;
           }
       }
    text = QString::fromLocal8Bit("没有数据选中");
    ui->m_text->setText(text);

到了这里,关于QTableWidget 实现添加 QCheckBox的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt QTableWidget 表格自适应 高度和宽度

    1. 在MainWindow中设置 1.1. 对被嵌入的子窗口进行设置,去除子窗口的一些影响到嵌入的部件。 pTable:指向子窗口堆内存的指针 1.2. 设置子窗口可以跟随主窗口自适应变化宽度。 水平方向:子窗口的自适应缩放。也可以直接在设计师中完成。 2. 在QTableWidget ui表格的 cpp文件中设

    2023年04月21日
    浏览(79)
  • Qt编程基础 | 第六章-窗体 | 6.3、QTableWidget

    QTableWidget是QT中的表格组件类,一般用来展示多行多列的数据,是QT中使用较多的控件之一。QTableWidgetItem用来表示表格中的一个单元格,整个表格都需要用逐个单元格构建起来。 2.1、设置表格的行数与列数 2.2、添加单元格 2.3、表头设置 2.4、设置行表头、列表头是否显示 2.

    2024年02月13日
    浏览(44)
  • Qt的QTableWidget如何在表头增加复选框

    QTableWidget只能对表格中的单元格设置复选框,而且只能进行比较有限的控制,如果需要设置图标,显示居中等等,可能需要自定义Item或可以利用setCellWidget将单元格的控件设置为自定义控件,而表头如果是使用自带的表头则无法通过设置显示出复选框,必须进行自定义表头,

    2024年02月11日
    浏览(43)
  • QT-QTableWidget设置单元项图标和图标大小

    要设置 QIcon 的大小,你可以使用 QPixmap 来加载原始图像,并调用 QPixmap 的 scaled() 函数来缩放图像的尺寸。然后,将缩放后的 QPixmap 设置给 QIcon,最后将 QIcon 设置给 QTableWidgetItem 的图标。 下面是一个示例代码,演示了如何设置 QIcon 的大小: 在示例代码中,我们加载原始图像

    2024年02月14日
    浏览(39)
  • 【Qt】6.QTableWidget控件、其他控件、自定义控件封装、鼠标事件

    目录 QTableWidget控件 代码 widget.cpp 结果 其他控件 stackWidget栈控件 下拉框 代码 widget.cpp 结果 自定义控件封装 代码 smallwidget.h smallwidget.cpp widget.cpp 结果 鼠标事件 代码 mylabel.h mylabel.cpp 结果 设置列数setColumnCount 添加水平头setHorizontalHeaderLabels 设置行数setRowCount 设置正文setItem(行号

    2024年02月07日
    浏览(50)
  • Qt QtableWidget、QtableView表格删除选中行、删除单行、删除多行

    设置 操作 设置 操作 无需设置 setSelectionBehavior(QAbstractItemView::SelectRows) ,但是可以选择的那一列最好设置为不可编辑。按下Ctrl键,选择多行。 设置1 设置2 操作 QTableWidgetSelectionRange是Qt框架中用于表示QTableWidget中选定的一块单元格区域的类。以下是如何使用QTableWidgetSelectionR

    2024年02月01日
    浏览(47)
  • 让QT中的Qtablewidget控件表格中的元素内容显示居中

    好了看最终的一个演示出来的效果吧  好了,就到这里,下次其他的我再继续更新吧,下面我附上一个类似的文章,写的也可以,有些我没有用到的分享出来你们也可以借鉴一下。 Qt中让tableWidget内容中的每个元素居中(qtablewidget的一些使用) - ww学习笔记 - 博客园

    2024年02月11日
    浏览(44)
  • 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    【QT开发笔记-基础篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget(1) QTableWidget 是 Qt 中的表格控件,可以行列的形式来展示数据 QTableWidget 有很多属性和方法,完整的可查看帮助文档。 在窗口上放置一个 QTableWidget 控件后,既可以在设计师 UI 界面来编辑属性和添加数据,也

    2024年02月12日
    浏览(49)
  • Python Qt学习(五)Checkbox

    源码 截图:  

    2024年02月11日
    浏览(41)
  • 嵌入式Linux:ARM驱动+QT应用+OpenCV人脸识别项目实现

            这个项目主要分为两部分,客户端(ARM板端)负责利用OpenCV采集人脸数据,利用TCP将人脸数据发送给服务器,然后服务器根据人脸数据进行人脸识别,将识别后的结果返还给客户端,客户端对人脸数据进行解析,得到正确的人脸数据后,打开门锁。门锁涉及硬件操作

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包