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