当你在头文件中定义onComboBoxSelectionChanged()
函数时,需要确保函数声明和定义的一致性。以下是一个示例:
MyClass.h:
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QObject>
#include <QComboBox>
class MyClass : public QObject
{
Q_OBJECT
public:
explicit MyClass(QObject *parent = nullptr);
private slots:
void onComboBoxSelectionChanged(int index);
private:
QComboBox* comboBox;
};
#endif // MYCLASS_H
MyClass.cpp:
#include "MyClass.h"
#include <QDebug>
MyClass::MyClass(QObject *parent) : QObject(parent)
{
comboBox = new QComboBox();
comboBox->addItem("选项1");
comboBox->addItem("选项2");
comboBox->addItem("选项3");
connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onComboBoxSelectionChanged(int)));
}
void MyClass::onComboBoxSelectionChanged(int index)
{
QString selectedOption = comboBox->currentText();
qDebug() << "选择了:" << selectedOption;
}
在这个例子中,我们将onComboBoxSelectionChanged()
函数声明为私有槽函数,并在构造函数中进行连接。通过这种方式,你可以在头文件和源文件之间保持一致性。
请注意,在头文件中包含了QObject和QComboBox的头文件,并使用了Q_OBJECT宏来启用信号/槽机制。
希望对你有所帮助!如果还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问