Я ' Я добавляю скрипты с Lua в наше приложение, и мне нужно реализовать привязки для GUI-инструментария. Набор инструментов, который мы используем, - это wxWidgets.
Я использую Lua 5.1 и luabind 0.9.1, и до сих пор он работал очень хорошо. Однако я не уверен, как лучше всего обрабатывать события. Например, если вы хотите создать кнопку и печатать строку при ее нажатии, вы напишите что-то подобное на C ++
class MyClass : public wxFrame
{
MyClass (...)
{
b = new wxButton (this, -1, "Click me");
b->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &MyClass::HandleButtonClick, this);
}
void HandleButtonClick (wxCommandEvent& ev)
{
wxMessageBox ("You clicked me");
}
}
API моей мечты для выполнения того же самого в Lua будет выглядеть примерно так:
b = wx.Button (frm, -1, "Click me")
b.on_click = function (ev)
print ("Button clicked")
end
Или , позволяя использовать несколько обработчиков событий:
b.on_click:add (function (ev)
print ("Button clicked again ...")
end)
Если это невозможно, то что-то вроде этого, что больше похоже на C ++ API:
b.bind (wx.EVT_COMMAND_BUTTON_CLICKED, function (ev)
print ("Yet again")
end)
Однако я не уверен, как реализовать это с помощью Luabind без написания класса оболочки для каждого класса в wxWidgets -библиотека, которую я хочу использовать.
Есть предложения?
Возможно, Luabind может создать вспомогательные классы (скажем, "
Nepoznata vrsta fajla!';
$errors=1;
}
else
{
//get the size of the image in bytes
//$_FILES['image']['tmp_name'] is the temporary filename of the file
//in which the uploaded file was stored on the server
$size=filesize($_FILES['image']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*1024)
{
echo 'To large file!
';
$errors=1;
}
//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname="Content/Images/".$image_name;
//we verify if the image has been uploaded, and print error instead
//$copied = copy($_FILES['image']['tmp_name'], $newname);
$copied = copy('$_FILES['image']['tmp_name'], $newname);
//echo $_FILES['image']['tmp_name'].'
';
//echo $_FILES['image']['name'];
if (!$copied)
{
echo 'Error occurred!
';
$errors=1;
}}}
//If no errors registred, print the success message
/*if(isset($_POST['Submit']) && !$errors)
{
echo "You have successfully uploaded image.
";
}*/
?>
Я видел несколько ответчиков из stackoverflow, например answers1 и answer2 , но я не знаю, как это сделать? Есть ли другие предложения?
спасибо.