• 5719阅读
  • 8回复

[提问]在tablewidget中添加button之后怎么去获取信号 [复制链接]

上一主题 下一主题
离线skylly_king
 

只看楼主 倒序阅读 楼主  发表于: 2017-02-26
在tablewidget中动态的添加按键,每行都有一个。再点击某一行中的按键,去做相应的事件。现在不知道如何去获取按键的按下状态
离线skylly_king

只看该作者 1楼 发表于: 2017-02-26
没有没有大神指点一下
离线skylly_king

只看该作者 2楼 发表于: 2017-02-26
离线skylly_king

只看该作者 3楼 发表于: 2017-02-26
谁给我的建议啊  小白一枚
离线firebolt

只看该作者 4楼 发表于: 2017-02-26
连接信号槽不解释了。
随便说一下啊。
1、笨办法1
每一行保存一个button的指针,然后在slot里遍历每一行的button是否等于sender。
2、笨办法2
做一个QPushButton的派生类,保存一个行号,emit 一个消息,把这个行号作为参数穿过去。
3、变通的办法
使用QButtonGroup,addButton的时候可以传递一个行号进去,消息里根据这个行号找到所在的行。
暂时就想到这些。
离线skylly_king

只看该作者 5楼 发表于: 2017-02-27
回 firebolt 的帖子
firebolt:连接信号槽不解释了。
随便说一下啊。
1、笨办法1
每一行保存一个button的指针,然后在slot里遍历每一行的button是否等于sender。
2、笨办法2
....... (2017-02-26 23:00) 

现在遇到的情况是,点击按钮,什么信号都收不到
离线skylly_king

只看该作者 6楼 发表于: 2017-02-27
回 firebolt 的帖子
firebolt:连接信号槽不解释了。
随便说一下啊。
1、笨办法1
每一行保存一个button的指针,然后在slot里遍历每一行的button是否等于sender。
2、笨办法2
....... (2017-02-26 23:00) 


  1. ui->tableWidget->setCellWidget(0,7,new QPushButton("test"));
  2. connect(ui->tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(tableWidget_checkBox(int, int)));
  3.    // connect(((QPushButton*)this->sender())->whatsThis(), SIGNAL(cellClicked(int,int)), this, SLOT(tableWidget_button(int, int)));
  4.     //connect(ui->tableWidget, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(tableWidget_button(QTableWidgetItem*)));
  5.         connect(ui->tableWidget, SIGNAL(cellPressed(int,int)), this, SLOT(tableWidget_button(int, int)));
离线kimtaikee

只看该作者 7楼 发表于: 2017-02-27
回 skylly_king 的帖子
skylly_king:ui->tableWidget->setCellWidget(0,7,new QPushButton("test"));
connect(ui->tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(tableWidget_checkBox(int, int)));
   // connect(((QPushButton*)this->sender())->whatsThis(), SIGN .. (2017-02-27 10:51) 

  1. QPushButton* button = new QPushButton("test", this);
  2. ui->tableWidget->setCellWidget(0, 7, button);
  3. connect(button, &QAbstractButton::click, [] () {
  4.       qDebug() << "you dare hit me ???";
  5. });

离线firebolt

只看该作者 8楼 发表于: 2017-02-27
7楼正解。
快速回复
限100 字节
 
上一个 下一个