• 6350阅读
  • 3回复

[提问]新手求助!运行QTableWidget的报itemEntered信号不存在问题! [复制链接]

上一主题 下一主题
离线001000229
 
只看楼主 倒序阅读 楼主  发表于: 2011-02-24
求助
因为本人是新手,现在遇到了一个运行时报没有itemEntered信号不存在,其实我继承的类的实现也很简单,本人是直接采用继承QTableWidget的方式,就是运行时报这个信号不存在,现在请求大家的帮助!

附上我的代码:
#include <QTableWidget>
#include <QPixmap>
#include <QEvent>

class TxTableWidget :  public QTableWidget
{
  public:
    TxTableWidget(int i, int j, QWidget *parent);
    ~TxTableWidget();

public slots:
    void itemChangedd(QTableWidgetItem *item);
    void cellEnteredd(int row, int column);

  private:
    QTableWidgetItem *pre;
};

TxTableWidget::TxTableWidget(int i, int j, QWidget *parent) :
  QTableWidget(i, j, parent)
{
  setMouseTracking(true);
  QObject::connect(this, SIGNAL(itemEntered(QTableWidgetItem *item)), SLOT(itemChangedd(QTableWidgetItem *item)));
  QObject::connect(this, SIGNAL(cellEntered(int row, int column)), SLOT(cellEnteredd(int row, int column)));
}  

TxTableWidget::~TxTableWidget()
{  
}  

void TxTableWidget::itemChangedd(QTableWidgetItem *item)
{  
  printf("hehe\n");
  QTableWidgetItem *t = currentItem();

  if (pre) {
    QBrush *b = new QBrush();
    b->setStyle(Qt::NoBrush);
    pre->setBackground(*b);
  }

  if (t) {
    QBrush *b = new QBrush(QPixmap(":pic/smiley/innerbuttonmark.bmp"));
    b->setStyle(Qt::TexturePattern);
    t->setBackground(*b);
  }

  pre = t;
}

void TxTableWidget::cellEnteredd(int row, int column)
{
  printf("hehe\n");
}
离线001000229
只看该作者 1楼 发表于: 2011-02-24
这个问题困扰我很长时间了,希望大家给出指点,请大家帮着出出主意。
离线001000229
只看该作者 2楼 发表于: 2011-02-24
在国外的论坛上找到了解决方法,connect的用法问题,
离线herryxuli
只看该作者 3楼 发表于: 2012-11-13
我也遇到 还是没解决 求具体方案
connect(tableCalendar, SIGNAL(itemEntered(QTableWidgetItem*)), this, SLOT(itemEntered(QTableWidgetItem*)));
快速回复
限100 字节
 
上一个 下一个