如何连接QPushButton
和QComboBox
?
我创建了一个接受2个参数的SLOT,一个指向QComboBox
的指针和所选项目的索引:
void modificaExp::eliminaExp(QComboBox *combo,int value)
{
......
combo->removeItem(value);
....
}
widgest在那里:
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。
答案 0 :(得分:1)
你确定你需要这个带有两个参数的插槽吗?
另一种简单的方法:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setupUi(this);
connect(deleteButton, SIGNAL(clicked(bool)), this, SLOT(deleteSlot()));
}
void MainWindow::deleteSlot()
{
comboBox->removeItem(comboBox->currentIndex());
}
答案 1 :(得分:0)
广告位应具有相同类型且参数数量等于或少于信号
在标头中声明QComboBox和QPushButton对象 modificaexp.h
private:
QComboBox* combo;
QPushButton* delButton;
modificaexp.cpp
combo=new QComboBox();
combo->addItem("ciao1");
combo->addItem("ciao44");
combo->addItem("ciao222");
combo->addItem("ciao555");
delButton=new QPushButton();
delButton->setText("delete");
connect(delButton, SIGNAL(clicked()), this, SLOT( eliminaExp()));
修改广告位
void modificaExp::eliminaExp()
{
combo->removeItem(combo->currentIndex());
}
请参阅Qt信号槽documentation