这是继承自onCreateOptionsMenu
:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.my_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
//Do what you want with menu - listeners etc.
}
对应的.cpp文件(部分内容):
QListWidget
我希望在点击项目时调用typedef void(*fnc) (QListWidgetItem* item);
class CustomListWidget : public QListWidget
{
public:
CustomListWidget();
void AddItemList(std::vector<std::string>* list);
void ConnectToOnClickSlot(fnc func);
private:
fnc onClick;
void InvokeOnclickMethod(QListWidgetItem* item);
};
,但没有任何反应。可能是什么问题?
主要部分:
CustomListWidget::CustomListWidget()
{
QObject::connect(this, SIGNAL(itemClicked(QListWidgetItem*)),
this, SLOT(InvokeOnclickMethod(QListWidgetItem*)));
}
void CustomListWidget::ConnectToOnClickSlot(fnc func)
{
onClick = func;
}
void CustomListWidget::InvokeOnclickMethod(QListWidgetItem* item)
{
onClick(item);
}
答案 0 :(得分:3)
您需要为要使用信号/插槽的类添加Q_OBJECT
宏。 IIRC,“旧”连接还要求在<accessibility> slots:
部分声明插槽。
顺便说一下,人们已经使用"new" signal/slot connection syntax大约三年了。