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;
}