C++ nahravanie dynamickych premennych
QString bg = "bg2.png";
Tak som dal na zaciatok programu
#include <settings.inc>
a premennu bg pouzivam. Nastal vsak problem, program ma reagovat na zmenu v subore inc a po zmene hodnoty bg napr. na bg1.png nastavit pozadie nanovo. To by slo az na to, ze po zmene suboru settings.inc musim znovu prekompilovat program aby dokazal reagovat na zmenu.. Potrebujem to urobit tak ( Qt prostredie sa refreshuje kazdu sekundu pomocou QTimer-u takze s tymto problem nieje ) aby sa po zmene hodnoty bg previedla zmena aj v programe. Ako je to mozne urobit?
Dakujem
Pre pridávanie komentárov sa musíte prihlásiť.

std::ofstream variables; variables.open("settings.inc");Ale to mi tie hodnoty nenacita, iba otvori suborFILE *s=fopen("settings.inc","r"); if(s!=NULL){ char buf[256]; if(fscanf(s,"%s",buf)==1){ bg = buf; } fclose(s); }Vsetky tieto funkcie maju predpisy definovane vcstdio. Este si to trochu uprav, aby ti nepretiekol buf a bude vsetko dobre.// niekde hore v pazi ako globalna premenna std::map <QString,QString> premenna; // v timeri FILE *s=fopen("settings.inc","r"); if(s!=NULL){ char buf1[256],buf2[256]; while(!feof(s)){ if(fscanf(s,"%s %s",buf1,buf2)!=2) break; premenna[buf1]=buf2; } fclose(s); }a potom k nim pristpujes ako premenna["bg"]. V subore je to ulozene ako: Samozrejme, moznosti je neuveritelne vela. Vacsina patri k uplnym zakladom.Mam main.cpp kde mam a v main.h mam:
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { ........ QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); timer->start(1000); ........ }Program funguje ale vyzera, ako keby sa nerefreshoval. Hladal som uz aj na oficialnej dokumentacii trolltechu, to mam s tamad.