【发布时间】:2015-07-23 20:05:41
【问题描述】:
如何连接QPushButton 和QComboBox?
我创建了一个 SLOT,它接受 2 个参数、一个指向 QComboBox 的指针和所选项目的索引:
void modificaExp::eliminaExp(QComboBox *combo,int value)
{
......
combo->removeItem(value);
....
}
那里是最宽的:
QComboBox* combo=new QComboBox();
combo->addItem("ciao1");
combo->addItem("ciao44");
combo->addItem("ciao222");
combo->addItem("ciao555");
QPushButton* delButton=new QPushButton();
delButton->setText("delete");
connect(delButton, SIGNAL(clicked()), this, SLOT( eliminaExp(combo,combo->currentIndex() )));
所以,当我点击delButton 时,元素会停留在那里。我认为connect命令有问题,具体来说我认为slot没有被调用。
【问题讨论】:
-
connect不能以这种方式工作。如果您使用的是 Qt4,则必须以某种方式将combobox传递给插槽(使其成为类成员,或通过setProperty)。如果您使用的是 Qt5,您可以切换到connect的“新”版本并编写一个 lambda。 -
谢谢,你是对的!!你保存了我的项目:D
标签: qt qcombobox qpushbutton