QComboBox 未触发
QComboBox not triggered
我有这个 listWidget,它显示狗的列表(名称 - 品种)。
我有这个组合框,可以让我在显示简短版本(仅名称 - 品种)或详细版本(名称 - 品种 - 年龄 - 体重 - 照片)之间进行选择。
出于某种原因,我的组合框没有做任何事情,即使我的连接没有给我任何错误。
我是这样实现的:
QObject::connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_event(int)));
void QtGuiApplication::on_comboBox_event(int selection)
{
switch (selection) {
case 0:
this->populateDogsList();
break;
case 1:
this->populateDogsListDetailed();
break;
}
}
我做错了什么?请帮帮我,我到处都看过:/谢谢。
PS。我的填充列表方法本身有效,我什至无法调试它,因为它没有进入 comboBox 事件方法。
Class 定义:(header)
class QtGuiApplication : public QMainWindow
{
Q_OBJECT
public:
QtGuiApplication(Controller& ctrl, QWidget *parent = Q_NULLPTR);
~QtGuiApplication() {};
(代码)
你的评论"No such slot QtGuiApplication::on_comboBox_event(int)"表明QtGuiApplication的头文件没有将这个成员函数声明为槽,它应该是这样的:
class QtGuiApplication: public ...
{
Q_OBJECT
...
public slots:
void on_comboBox_event(int);
...
}
Qt 使用一个名为moc.exe 的工具来解析头文件,它会生成用于槽查找的代码。在您的情况下,可能由于缺少声明而找不到插槽。
我有这个 listWidget,它显示狗的列表(名称 - 品种)。 我有这个组合框,可以让我在显示简短版本(仅名称 - 品种)或详细版本(名称 - 品种 - 年龄 - 体重 - 照片)之间进行选择。 出于某种原因,我的组合框没有做任何事情,即使我的连接没有给我任何错误。 我是这样实现的:
QObject::connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_event(int)));
void QtGuiApplication::on_comboBox_event(int selection)
{
switch (selection) {
case 0:
this->populateDogsList();
break;
case 1:
this->populateDogsListDetailed();
break;
}
}
我做错了什么?请帮帮我,我到处都看过:/谢谢。 PS。我的填充列表方法本身有效,我什至无法调试它,因为它没有进入 comboBox 事件方法。
Class 定义:(header) class QtGuiApplication : public QMainWindow { Q_OBJECT
public: QtGuiApplication(Controller& ctrl, QWidget *parent = Q_NULLPTR); ~QtGuiApplication() {};
(代码)
你的评论"No such slot QtGuiApplication::on_comboBox_event(int)"表明QtGuiApplication的头文件没有将这个成员函数声明为槽,它应该是这样的:
class QtGuiApplication: public ...
{
Q_OBJECT
...
public slots:
void on_comboBox_event(int);
...
}
Qt 使用一个名为moc.exe 的工具来解析头文件,它会生成用于槽查找的代码。在您的情况下,可能由于缺少声明而找不到插槽。