当前位置: 首页 > article >正文

Qt学习笔记

目录

1、QTableWidget第一列设置复选框

2、QTableWidget判断选择中的数据

3、QTableWidget设置全选、全不选、反选

3.1全选

3.2全不选

3.3反选

4、QessageBox弹出确认框

5、QJsonArray转为QString


1、QTableWidget第一列设置复选框

  QCheckBox *checkBox = new QCheckBox();
  ui->ruleTableWidget->setCellWidget(row, 0, checkBox);

2、QTableWidget判断选择中的数据

 int rowCount=ui->ruleTableWidget->rowCount();
    bool anyChecked = false; // 标记是否有任何复选框被选中
    for (int row = 0; row < rowCount; ++row) {
        QCheckBox *checkBox = qobject_cast<QCheckBox*>(ui->ruleTableWidget->cellWidget(row, 0));
        if (checkBox && checkBox->isChecked()) {
            // 如果这一行的复选框被选中
            // 执行你的逻辑...
            anyChecked = true; // 标记有复选框被选中
            // 你可以在这里停止循环,或者继续检查所有复选框
           QTableWidgetItem *item = ui->ruleTableWidget->item(row, 7); // 注意列索引是从0开始的,所以第二列的索引是1
           // 如果单元格不为空,则获取其文本
            QString Id = item->text();
          
        }
    }

    if (anyChecked) {
        // 如果有任何复选框被选中,执行你的逻辑...

    }else{

    }

3、QTableWidget设置全选、全不选、反选

3.1全选

void HomeWindow::on_ruleSelectAllButton_clicked()
{

    for (int row = 0; row < ui->ruleTableWidget->rowCount(); ++row) {
           QCheckBox *checkBox = qobject_cast<QCheckBox*>(ui->ruleTableWidget->cellWidget(row, 0));
           if (checkBox) {
               checkBox->setChecked(ui->ruleTableWidget);
           }
     }

}

3.2全不选

void HomeWindow::on_ruledeSelectAllButton_clicked()
{
    for (int row = 0; row < ui->ruleTableWidget->rowCount(); ++row) {
      QCheckBox *checkBox = qobject_cast<QCheckBox*>(ui->ruleTableWidget->cellWidget(row, 0));
       checkBox->setChecked(false);
      }


}

3.3反选

void HomeWindow::on_ruleInvertButton_clicked()
{

    for (int row = 0; row < ui->ruleTableWidget->rowCount(); ++row) {
          QCheckBox *checkBox = qobject_cast<QCheckBox*>(ui->ruleTableWidget->cellWidget(row, 0));
          if (checkBox) {
              checkBox->setChecked(!checkBox->isChecked());
          }
      }


}

4、QessageBox弹出确认框

    QMessageBox msgBox;  
    msgBox.setWindowTitle("确认");  
    msgBox.setText("你确定要执行这个操作吗?");  
    msgBox.setIcon(QMessageBox::Question); // 设置图标  
    msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); // 设置按钮  
    msgBox.setDefaultButton(QMessageBox::No); // 设置默认按钮  
  
    int reply = msgBox.exec(); // 显示对话框并等待用户选择  
  
    if (reply == QMessageBox::Yes) {  
        // 用户点击了“是”  
        qDebug() << "用户选择了是";  
    } else {  
        // 用户点击了“否”或者关闭了对话框  
        qDebug() << "用户选择了否或关闭了对话框";  
    }  

5、QJsonArray转为QString

QString jsonArrayToString(const QJsonArray &array) {  
    // 使用QJsonDocument将QJsonArray序列化为JSON字符串  
    QJsonDocument doc(array);  
  
    // QJsonDocument::toJson() 默认输出未格式化的JSON字符串  
    // 如果需要格式化的字符串(即带有缩进的字符串),可以使用第二个参数指定缩进  
    QByteArray jsonByteArray = doc.toJson(QJsonDocument::Indented);  
  
    // 将QByteArray转换为QString  
    QString jsonString = QString::fromUtf8(jsonByteArray);  
  
    return jsonString;  
}  


http://www.kler.cn/a/324288.html

相关文章:

  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:分区修剪优化的应用案例(下)(22 / 30)
  • 【工具插件类教学】在 Unity 中使用 iTextSharp 实现 PDF 文件生成与导出
  • 基于STM32的智能温室控制系统设计
  • Kafka新节点加入集群操作指南
  • Qt / Qt Quick程序打包的一些坑 (四)
  • mindspore发布件
  • HTTP请求过程 part-1
  • 高通Android 12 音量API设置相关代码
  • (undone) MIT6.824 Lecture1 笔记
  • OpenGL ES 绘制一个三角形(2)
  • zookeeper 服务搭建(集群)
  • 解决SpringBoot 3.3.x集成Micrometer和Prometheus,导致项目阻塞,无法启动
  • 演示:基于WPF的DrawingVisual开发的频谱图和律动图
  • Meta首款多模态Llama 3.2开源:支持图像推理,还有可在手机上运行的版本 | LeetTalk Daily...
  • Python连接Kafka收发数据等操作
  • [leetcode]53_最大子数组(序列)和
  • 2024年空间计算/XR的现状:双子座阶段的探索与展望
  • 关于电商API接口接入及其相关应用分析【主流电商API接口】
  • 音视频处理工具FFmpeg与Java结合的简单使用
  • 【计算机网络 - 基础问题】每日 3 题(二十七)
  • Stable Diffusion绘画 | Checkpoint Merger 模型融合
  • 如何区分这个ip是真实ip,不是虚假的ip
  • 论文阅读 - SWATTING Spambots: Real-time Detection of Malicious Bots on X
  • RabbitMQ的高级特性-延迟队列
  • 个人计算机与网络的安全
  • 初探shell与bash使用指南