W GUI wyświetlam dwie zmienne np. valueMhz, valueVCC
jeżeli coś zmieni wartość to chciałbym przez 5s inaczej wyświetlić te zmienne np. kolorem czerwonym
Czy taki koncept to dobry kierunek zamiast prostej zmiennej używać struktury aby mieć czas do kiedy GUI ma zaznaczyć zmienną
https://godbolt.org/z/EjEGK5z9Y
// https://godbolt.org/z/EjEGK5z9Y
#include <fmt/chrono.h>
#include <chrono>
#include <thread>
// Integer + czas modyfikacji + czas do kiedy ważny
class IntWithTime
{
private:
int m_int;
std::chrono::system_clock::time_point m_timeModification;
std::chrono::system_clock::time_point m_timeValid;
public:
void set(int newInt){
m_int = newInt;
m_timeModification = std::chrono::system_clock::now();
m_timeValid = m_timeModification + std::chrono::seconds(5);
}
int get(){return m_int;}
std::chrono::system_clock::time_point getTimeModification()
{
return m_timeModification;
}
std::chrono::system_clock::time_point getimeValid()
{
return m_timeValid;
}
};
class Foo
{
public:
Foo(){
fmt::print("Foo::Foo()\n");
}
~Foo(){
fmt::print("Foo::~Foo()\n");
}
IntWithTime valueMhz;
IntWithTime valueVCC;
};
int main()
{
std::shared_ptr<Foo> foo = std::make_shared<Foo>();
foo->valueMhz.set(1234);
fmt::print("valueMhz modification:{} valid:{} \n", foo->valueMhz.getTimeModification(), foo->valueMhz.getimeValid() );
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
foo->valueVCC.set(19);
fmt::print("valueVCC:{} valid:{} \n", foo->valueVCC.getTimeModification(), foo->valueVCC.getimeValid() );
// spdlog::shutdown();
}