`
ydbc
  • 浏览: 766919 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

QTableWidget中checkBox的高级应用实例

 
阅读更多

mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include "QDebug"

#include "QCheckBox"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),this,SLOT(changeTest(int, int)));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::changeEvent(QEvent *e)

{

QMainWindow::changeEvent(e);

switch (e->type()) {

case QEvent::LanguageChange:

ui->retranslateUi(this);

break;

default:

break;

}

}

void MainWindow::changeTest(int row, int col)

{

//QMessageBox::about(0,QString::number(row),QString::number(col));

qDebug()<<row<<col;

}//

void MainWindow::on_pushButton_clicked()

{

QString m=ui->lineEdit->text();

int z=m.toInt(0,10);

ui->tableWidget->setRowCount(z);

QString str;

QString numStr;

pBoxGrp = new QButtonGroup(this);

for(int m=0;m<z;m++)

{

// ui->tableWidget->setCellWidget(m,1,e);

numStr.clear();

numStr.clear();

numStr.setNum(m);

str = "chkbox" +numStr ;

QCheckBox *pBox =new QCheckBox(str);

pBox->setObjectName(str);

pBoxGrp->addButton(pBox,m);

pBoxGrp->setExclusive(false);

connect(pBoxGrp,SIGNAL(buttonClicked(int)),this,SLOT(slotBoxStateChanged(int)));

ui->tableWidget->setCellWidget(m,1,pBox);

}

}//当选中checke是第一列分别显示出相应的行号 没选中什么也不显示

void MainWindow::slotBoxStateChanged(int id)

{

QAbstractButton *pButton =pBoxGrp->button(id);

QCheckBox *pBox =(QCheckBox*)pButton;

if(pBox->checkState()==Qt::Checked)

{

QString str;

int nNum =id +1;

str.setNum(nNum);

ui->tableWidget->setItem(id,0,new QTableWidgetItem(str));

}

else

{

ui->tableWidget->takeItem(id,0);

}

}

对应.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "QCheckBox"
#include "QButtonGroup"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
QButtonGroup *pBoxGrp;
private slots:
void on_pushButton_clicked();
void changeTest(int,int);
void slotBoxStateChanged(int);
};
class chekcbox :public QCheckBox{
public :
int m;
};
#endif // MAINWINDOW_H

分享到:
评论

相关推荐

    QTableWidget中嵌入多个复选框

    1. **创建复选框**:为每个需要显示复选框的单元格创建一个新的`QTableWidgetItem`实例,并将其类型设置为`TypeCheckBox`,即`Qt::CheckBox`。这可以通过`QTableWidgetItem(QTableWidgetItem::Type)`构造函数完成。 ...

    qt QtableWidget使用例子

    本篇文章将深入探讨QTableWidget的使用,包括其基本概念、功能、以及如何在实际项目中应用。 ### 一、QTableWidget基础 1. **构造与初始化**:QTableWidget通过指定行数和列数来创建。例如,`QTableWidget(int ...

    QCheckBoxTableWidget.zip

    然后,在设置表头时,我们将这个自定义的QTableWidgetItem实例作为表头的item。这样,用户在表头点击复选框,就能影响到所有行的相应列。 接下来,我们需要在表格类对象中实现`setCellWidget`方法来在每行的第一列...

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

    1. **创建QTableWidget或QTableView**:首先,我们需要实例化一个`QTableWidget`或`QTableView`,并设置相应的行数和列数。 ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem ...

    QTableView/QTableWidget自定义表头,添加复选框,下拉框控件

    通过阅读和学习这个示例代码,你可以更好地理解如何在实际项目中应用这些技术。记得仔细查看类定义、事件处理函数以及与模型的数据同步逻辑,这些都是实现自定义表头功能的关键部分。 总的来说,自定义`QTableView`...

    qt qtableview在表头中添加combobox,checkbox,spinbox

    使用QSpinBox,同样在`createEditor`方法中实例化,并设置其最小值和最大值。`setEditorData`用于设置初始值,`setModelData`用于获取用户调整后的数值。 5. 配置QHeaderView: 需要为QTableView的每一列设置...

    checktablewidget.rar

    5. 在`QTableWidget`的构造函数中,将表头视图替换为`CheckableHeaderView`实例,并连接信号和槽,使得点击CheckBox时能够触发相应的动作。 代码示例(简化版): ```cpp class CheckableHeaderView : public ...

    QTableView QCheckBox

    最后,将`CheckBoxDelegate`设置为`QTableView`的代理,并创建一个`CheckBoxTableModel`实例,填充数据,然后将其设置为`QTableView`的模型。这样,`QTableView`的指定列就会显示`QCheckBox`,用户可以进行选择。 `...

    QTableView添加复选框,下拉框控件

    在实际开发中,为了提高代码的可重用性和可维护性,可以将自定义委托封装成独立的类,通过注入模型和视图实例来实例化和使用。同时,可以利用Qt的信号与槽机制,确保视图、模型和业务逻辑之间的通信顺畅。 总结来说...

    QT tablewidget样式与添加按钮进度条选择框.7z

    QT TableWidget是Qt库中的一个核心组件,常用于在GUI应用程序中展示表格数据。这个压缩包文件"QT tablewidget样式与添加按钮进度条选择框.7z"显然包含了一些示例,展示了如何自定义TableWidget的样式,以及如何在...

Global site tag (gtag.js) - Google Analytics