首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >值发生变化时,获取QTableWidget中的QComboBox的上一个值

值发生变化时,获取QTableWidget中的QComboBox的上一个值
EN

Stack Overflow用户
提问于 2010-07-06 15:45:15
回答 4查看 6.2K关注 0票数 6

假设我有一个QTableWidget,每一行都有一个QComboBox和一个QSpinBox。考虑到我存储它们的值是一个QMap<QString /*Combo box val*/,int /*spin box val*/> theMap;

comboBoxe的值或数字显示框值被更改时,我想要更新theMap。因此,我应该知道组合框的前值是什么,以便替换为comboBox的新值,同时也要注意数字显示框的值。

我该怎么做呢?

附注:我已经决定创建一个槽,当你点击一个表时,它会存储该行组合框的当前值。但这只在你按下行标题时才起作用。在其它位置(单击comboboxspinbox),QTableWidgetitemSelectionChanged()信号不起作用。

因此,一般来说,我的问题是存储选定行的组合框的值,而I将获得ComboBoxSpinBox的更改,并将很容易地处理theMap

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-06 16:26:25

如何创建您自己的派生QComboBox类,如下所示:

class MyComboBox : public QComboBox
{
  Q_OBJECT
private:
  QString _oldText;
public:
  MyComboBox(QWidget *parent=0) : QComboBox(parent), _oldText() 
  {
    connect(this,SIGNAL(editTextChanged(const QString&)), this, 
        SLOT(myTextChangedSlot(const QString&)));
    connect(this,SIGNAL(currentIndexChanged(const QString&)), this, 
        SLOT(myTextChangedSlot(const QString&)));
  }
private slots:
  myTextChangedSlot(const QString &newText)
  {
    emit myTextChangedSignal(_oldText, newText);
    _oldText = newText;
  }
signals:
  myTextChangedSignal(const QString &oldText, const QString &newText);  
};

然后只需连接到myTextChangedSignal,它现在额外提供了旧的组合框文本。

我希望这能有所帮助。

票数 8
EN

Stack Overflow用户

发布于 2012-01-30 22:58:34

有点晚了,但我遇到了同样的问题,并以这种方式解决了:

class CComboBox : public QComboBox
{
   Q_OBJECT

   public:
      CComboBox(QWidget *parent = 0) : QComboBox(parent) {}


      QString GetPreviousText() { return m_PreviousText; }

   protected:
      void mousePressEvent(QMouseEvent *e)
      { 
         m_PreviousText = this->currentText(); 
         QComboBox::mousePressEvent(e); 
      }

   private:
      QString m_PreviousText;
};
票数 5
EN

Stack Overflow用户

发布于 2010-07-07 01:37:42

我的建议是实现一个模型,它将帮助您在数据和编辑数据的UI之间进行清晰的分离。然后,您的模型将收到通知,给定的模型索引(行和列)已更改为新数据,此时您可以更改所需的任何其他数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3184395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档