我正在开发BlackBerry 10中的一个计算器应用程序,为此,我使用switch case来获取按钮ID,但我不知道如何在switch case中获取按钮ID。
例如:
switch(?){
case button_addition:
case button_minus:
case button_multiplication:
case button_division:
}其中,button_addition、button_minus、button_multiplication和button_division是按钮的ID。
如何获取这些按钮的ID?
发布于 2013-08-20 22:13:49
我不确定你是否可以得到这样的ID,我可以建议你在按钮中定义自定义属性,并在按钮单击事件上传递该属性。然后,您可以使用该属性来标识事件。
像下面这样
Button{
id: button_Addidtion
property var customId: 1 // for addition
onClick:{
handleOperation(customId);
}
}
function handleOperation(id) {
switch(id) {
case 1://addition
break;
}
}如果你不想定义自定义属性,那么也许你可以使用objectName属性来标识按钮,我不确定你是否可以在JS中使用带有开关的字符串。
发布于 2013-08-20 21:24:49
我建议你去看看装按钮的容器。在许多窗口系统中,容器都有一个"for each“方法,在该方法中,您可以提供一个在每个按钮上操作的函数。
或者当按钮被按下(或单击)时,检查消息。许多窗口消息都包含发送该消息的小部件的ID。
发布于 2013-08-29 02:11:43
在QML中很简单,您可以创建一个JS函数,该函数将单击的按钮ID作为输入参数,并根据该参数进行切换。您需要调用此JS函数,并在按钮单击信号上传递按钮ID。
function handleMultiButton(buttonID) {
switch(buttonID) {
case "button_Addidtion": //Do Something
break;
case "button_division": //Do Something
break;
}
}
Button{
id: button_Addidtion
onClick:{
handleMultiButton("button_Addidtion");
}
}
Button{
id: button_division
onClick:{
handleMultiButton("button_division");
}
}等。
https://stackoverflow.com/questions/18335471
复制相似问题