gpt4 book ai didi

c++ - 当值改变时,获取 QComboBox 的先前值,该值位于 QTableWidget 中

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:12 24 4
gpt4 key购买 nike

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

comboBoxe s 值或旋转框值正在更改我想更新 theMap .所以我应该知道组合框以前的值是多少,以便替换为 comboBox 的新值。还要注意旋转框的值。

我该怎么做?

附言我决定创建一个插槽,当您单击表格时,它会存储该行组合框的当前值。但这仅在您按下行标题时有效。在其他地方(点击 comboboxspinbox ) itemSelectionChanged() QTableWidget的信号不起作用。

所以一般来说,我的问题是存储所选行的组合框的值,我会得到 ComboBoxSpinBox甚至改变并将处理theMap很容易。

最佳答案

如何创建自己的派生 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,它现在还提供旧的组合框文本。

希望对您有所帮助。

关于c++ - 当值改变时,获取 QComboBox 的先前值,该值位于 QTableWidget 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3184395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com