setupUi(this);connect(ui->tableWidget,SIGNAL(cell" />

QTableWidget中checkBox的高级应用实例

系统 1526 0

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中checkBox的高级应用实例


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论