Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.X] Tworzenie okienek w SFML

Ostatnio zmodyfikowano 2026-04-07 20:30
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
[SFML 2.X] Tworzenie okienek w SFML
» 2025-10-04 10:28:54
Witam. Czy to dobry sposób na programowanie okienek w SFML? Czy jest jakiś lepszy sposób? Bo standardowo w Windowsie gdy tworzy się nowe okienko to ma ono osobną instację i zastanawiam się czy nie da się tak zrobić w SFML. Może poprzez sf::RenderWindow? Pytanie stąd, bo zastanawiam się czy dodać opcję minimalizacji okien w mojej apce i chciałbym to porządnie zrobić ... :-)

C/C++
#pragma once
#include "ElementGUI/ElementGUI.hpp"
#include "ElementGUI/Button.hpp"

enum class DialogState { Idle, ToClose };

class Dialog
    : public ElementGUI
{
public:
   
sf::Vector2f _position;
   
sf::RectangleShape _dialog_rect;
   
sf::RectangleShape _title_rect;
   
sf::Text _title_text;
   
sf::RectangleShape _content_rect;
   
NormalButton * _close_btn;
   
   
DialogState _state;
   
   
bool _is_moved;
   
sf::Vector2f _offset;
   
   
Dialog( std::wstring title, sf::Vector2f size, sf::Vector2f position = sf::Vector2f( - 1, - 1 ) );
   
virtual ~Dialog();
   
   
sf::Vector2f getPosition();
   
void setSize( sf::Vector2f size );
   
sf::Vector2f getSize();
   
virtual void setPosition( sf::Vector2f position );
   
   
virtual void cursorHover();
   
virtual void handleEvent( sf::Event & event );
   
virtual void update();
   
virtual void draw();
};

extern std::vector < Dialog * > dialogs;
P-183075
skovv
» 2025-10-04 15:33:22
Ale to są zwykle okna rysowane "po swojemu" w oknie programu tak? Jeśli tak to napisz jak chcesz aby działało, jeśli chcesz zrobić prawdziwe okna to będzie dużo roboty z dzieleniem zasobów itp
P-183078
tBane
Temat założony przez niniejszego użytkownika
» 2025-10-05 08:19:06
Tak. Obecnie mam okienka rysowane w programie. Ale chciałbym to profesjonalnie zrobić. Tylko nie wiem jak by to miało wyglądać. Dlatego piszę tutaj na forum. Jak Wy byście zaprogramowali okienka w programie w SFML?

P-183079
skovv
» 2025-10-05 10:32:35
Aby wyglądało profesjonalnie nie musisz używac oryginalnych windowsowych okienek(szczegolnie kiedy sfml nie lubi wielu okien), wystarczy ladnie rysowac okienka w swoim programie i napisac dobry/prosty system ich obslugi by nie kolidowal z innymi oknami i tym co jest pod nimi
P-183080
tBane
Temat założony przez niniejszego użytkownika
» 2026-04-03 14:42:52
Migrowałem na nowszego SFML 3.0.2 i próbowałem zrobić okienka za pomocą sf::RenderWindow jednak nie można nimi zarządzać. Nie da się ustawiać kolejności wyświetlania okien tzn. żeby np. okno "Confirm Window" (okienko z dwoma opcjami confirm/cancel) było nad głównym oknem aplikacji. Można między nimi przeskakiwać. Dlatego opcja odpada. Może w kolejnym SFML to zrobią... :-/
P-184007
nanoant20
» 2026-04-04 16:18:21
Może w kolejnym SFML to zrobią... :-/
SFML nie daje i nie dawało kontroli okien, nie jest biblioteką do budowania GUI.
To co chcesz osiągnąć i o czym piszesz to tzw. "okno modalne", trzeba by kombinować z systemowym WinAPI lub Dear ImGui with SFML.
Twoje pseudo-modalne okno w jednym RenderWindow to najprostsze i najlepsze rozwiązanie.
P-184010
tBane
Temat założony przez niniejszego użytkownika
» 2026-04-04 18:23:26
Wystarczyła by funkcja do ustawiania okna aktywnym. Wtedy można by ręcznie przetwarzać okna i nimi zarządzać.
P-184011
nanoant20
» 2026-04-04 22:09:32
Wystarczyła by funkcja do ustawiania okna aktywnym.
a czy podjąłeś próbę z pobieraniem pozycji kursora względem każdego okna (sf::Mouse::getPosition(window)). Sprawdzasz, czy kursor znajduje się wewnątrz granic okna, jeżeli tak to to okno jest aktywne.
Lub czy sprawdzałeś z typami zdarzeń (event'ami) sf::Event::GainedFocus i sf::Event::LostFocus nie wiem czy są w wersji SFML 3.x
P-184013
« 1 » 2
  Strona 1 z 2 Następna strona