mi ANTAŬDIRAS - mi estas rubkodskribisto, tial ĉio ĉi tie estass malcerta kvalito.
Mi serĉis ian GUI-bibliotekon por mia C++programa interfaco.
Kaj eltrovis IMGUI[1]. Sed ĝin (IMGUI) uzado trovis sin tre maloportuna. Mi ĝis nun tempo ne komprenis, kiel normale labori kun ĝi.
Sed tio nun ne gravas.
Mi trovis TGUI[2], kiu ankaŭ havas poŝplatforman konstruilon.
En mia okazo, mi uzas SFML por interago kun fenestro k.t.p. Kaj resume kodo estas simpla.
Konektate ĉio facile:
Bindila agordoj (Ligil-bibliotekoj): sfml-window, sfml-graphics, sfml-system, /usr/lib/tgui.so
Ceteraj eble agordi en IDM (angle. IDE). Mi uzas Code::Blocks.
main.cxx:
#include "interfaco.hpp" int main(int argc, char *argv[]){ fInic(); return 0; }
interfaco.hpp:
#include <SFML/Graphics.hpp> #include <SFML/Graphics/RenderWindow.hpp> #include <SFML/Window.hpp> #include <SFML/Window/Event.hpp> #include <TGUI/TGUI.hpp> void fInterfaco(); void fInic();
interfaco.cxx:
#include "interfaco.hpp" sf::RenderWindow window(sf::VideoMode(800, 600), "Mia superpotenca programo", sf::Style::Close); tgui::GuiSFML gui{window}; void fInic() { fInterfaco(); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { gui.handleEvent(event); if (event.type == sf::Event::Closed) window.close(); } window.clear(); gui.draw(); window.display(); } } void fInterfaco() { gui.loadWidgetsFromFile("gui.txt"); // INTERESE: permesate krei interfacon en ui-konstruilo kaj post ŝargi ĝin. Eĉ kelke. auto menuo = tgui::MenuBar::create(); menuo->addMenu("Dosiero"); menuo->addMenuItem("Konservi"); menuo->addMenuItem("-"); //Tiuj signoj (-) estas uzataj por disigado (tiel nomataj "disigiloj") menuo->addMenuItem("Eliri"); menuo->addMenu("Helpo"); menuo->addMenuItem("Pri"); gui.add(menuo); }
Funkcias ĉio per signaloj. Detale legi eble ĉi tie[3].
Kiel aspektas ui-konstruilo[4].
-[1]: https://github.com/ocornut/imgui/
-[2]: https://github.com/texus/TGUI
-[3]: https://tgui.eu/documentation/0.9/annotated.html
-[4]: https://i.imgur.com/7WhhtRF.png