web-dev-qa-db-fra.com

Comment puis-je faire une application GUI dans Lua

Je vais d'abord vous montrer un exemple de ce dont je parle: GUI Example

J'étudie Lua depuis environ une semaine maintenant, et je suis vraiment curieux de savoir comment je ferais cela. Fondamentalement (pour le moment et à des fins d'apprentissage), je veux juste créer une interface graphique avec 2 boutons, 1 pour démarrer le spécifié (.exe) et un pour quitter l'interface graphique.

Est-ce possible? Comment pourrais-je procéder? Toute information serait formidable!

11
Donavon Decker

Si vous êtes un débutant absolu, c'est-à-dire que vous n'avez aucune expérience de programmation dans d'autres langages de programmation, je vous conseille d'apprendre très bien Lua sans essayer de jouer avec la programmation GUI, ce qui est intrinsèquement beaucoup plus difficile. Lorsque vous aurez une bonne compréhension de Lua, optez pour une boîte à outils GUI pour Lua. J'utilise wxLua donc je ne peux que vous donner quelques indices à ce sujet.

Comme il ne s'agit pas d'une boîte à outils Lua "native", mais d'une "liaison" à une bibliothèque GUI multiplateforme bien connue (wxWidgets) vous devez étudier à la fois la documentation wxLua et le manuel wxWidgets (à dans une certaine mesure).

la distribution binaire wxLua est livrée avec tout le nécessaire pour l'utiliser (vous n'avez même pas besoin d'un interpréteur Lua séparé, il a le sien) et contient un bon nombre d'exemples d'applications.

Le script suivant est une approximation triviale de ce que vous voulez faire, mais (je me répète) vous devriez vraiment apprendre les bases de Lua avant de tenter la programmation GUI.

local wx = require 'wx'

local PATH_TO_APPLICATION = [[notepad.exe]]     -- Windows assumed for sake of exemplification

local ans = wx.wxMessageBox( "Should the application be started?", "Hi there!",
    wx.wxOK + wx.wxCANCEL + wx.wxICON_QUESTION )
if ans == wx.wxOK then
    wx.wxExecute( PATH_TO_APPLICATION )
end

Pour exécuter le script précédent, vous devez être sûr que wxLua est correctement installé dans votre chemin de recherche d'interpréteur. Sinon, vous devez utiliser le wxlua.exe interprète fourni avec la distribution.

Notez également que l'interpréteur wxLua (dernière version stable de wxLua) fonctionne avec une version de Lua 5.1, alors essayez de ne pas utiliser les fonctionnalités de Lua 5.2 dans vos scripts. La syntaxe et la sémantique de base de Lua sont presque les mêmes, mais il y a quelques légères différences et Lua 5.2 a quelques fonctionnalités supplémentaires. Soyez donc prudent avec votre parcours d'apprentissage.

Je pense que vous voudrez peut-être jeter un œil: http://lua-users.org/wiki/GraphicalUserInterfaceToolkits

Si vous voulez quelque chose de bien connu et testé, j'irais chez Qt, si quelque chose de léger: FLTK.

6
Caladan

Un autre exemple est IUP: http://www.tecgraf.puc-rio.br/iup/

Il est pris en charge pour Microsoft Windows et Unix

3
Enigma

Avez-vous vérifié wxLua ? C'est le seul framework de bureau que je connaisse pour Lua.

3
Joe Minichino

IUP devrait être le moyen le plus simple de créer une interface graphique avec Lua. Cependant, vous rencontrerez un mur de briques si vous essayez d'installer IUP sur Linux. Vous devez espérer que quelqu'un l'a préinstallé ou que quelqu'un a préécrit un package d'installation pour votre version de Linux. Si vous voulez que d'autres personnes puissent exécuter votre code plus tard, il sera pratiquement impossible de configurer les choses de manière raisonnable. C'est vraiment une erreur de la part de l'équipe Lua/Iup car je n'ai aucun problème à utiliser Iup à partir du langage de programmation C et il semble être largement compatible avec de nombreuses versions de Linux. C'est l'opposé de la situation habituelle où il est très facile de mettre en place un langage de script et difficile de mettre en place un langage de bas niveau comme C.

2
SeanVN