11.2.2013, 12:42 | #21 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
Vrlo lako možeš sam da implementiraš proveru "oktalnosti". Oktalni brojevi imaju cifre od 0 do 7, stim da oktalni broj može da počinje jednom nulom. Posle lako možeš da ga konvertuješ u integer (čini mi se da Qt već ima podršku za to).
A što se ti če dll-ova, postoje dve mogućnosti. Prava je da uz tvoju aplikaciju idu i potrebni Qt dll-ovi u istom folderu. Druga opcija je da svoju aplikaciju linkuješ statički (to je u suštini kopiranje potrebnog koda iz biblioteka u sam exe fajl). Ali ti za ovo trebaju statičke verzije Qt bibliteka (ne .dll nego .lib). Ali mislim da postoje neke začkoljice u Qt licencama koje te sprečavaju na ovo. Morao bi da proučiš LGPL i GPL licence da bi bio siguran šta se sme a šta ne. Pa ti je stoga najbolja prva opcija da šalješ i dll-ove uz exe fajl (to se sme po LGPL i GPL licenci). |
11.2.2013, 13:11 | #22 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.162
Zahvalnice: 2.079
Zahvaljeno 4.921 puta na 2.857 poruka
|
Re: Qt creator
Je l' postoji neki zvanični Qt Redistributable paket koji sme da se distribuira kao setup uz aplikaciju (kao npr. što postoji Visual C++ 20xx redist za dinamički linkovane programe)?
|
11.2.2013, 13:31 | #23 |
Član
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
|
Re: Qt creator
@ivan90BG
Ima funkcija koja tekst iz QLineEdit-a pretvara u broj u odg. osnovi ali meni treba restrikcija da u taj edit mogu samo da se upišu brojevi od 0 do 7 i ništa više. Sa slike se vidi da nema opciju za oktalni. A za .exe, prekopirao sam ga u drugi folder i poubacivao sve .dll-ove koje je tražio, i onda izbaci sledeću poruku(slika). @voodoo_ Šta su ti redistributable paketi? Kad otvorim add or remove programs vidim gomilu tih redistributables. Za šta služe, smeju li se brisati? |
11.2.2013, 13:58 | #24 |
Starosedelac
Član od: 15.6.2007.
Lokacija: Amsterdam
Poruke: 1.817
Zahvalnice: 463
Zahvaljeno 310 puta na 230 poruka
|
Re: Qt creator
QLineEdit ima metodu .setValidator, u PyQtu se koristi ovako:
Kod:
validator = QtGui.QIntValidator() self.ui.lineKolicina.setValidator(validator) Kod:
validator = QtGui.QIntValidator(0,7,self) :edit: evo i primer za C++ http://stackoverflow.com/questions/1...t-only-numbers |
11.2.2013, 15:06 | #25 |
Član
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
|
Re: Qt creator
Hvala, ja sam pobrkao stvari. setBottom i setTop funkcije odredjuju maksimalnu brojevnu vrednost, a minimum i maximum u kom rasponu cifre mogu da se unesu.
Tako da ako hocu da se u QLineEdit unose oktalni brojevi u opsegu 0-100 (oktalno): Kod:
QIntValidator *val = new QIntValidator(0,7); val->setBottom(0); val->setTop(100); ui->lineEdit->setValidator(val);; |
11.2.2013, 16:53 | #26 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
U suštini ne postoji instalacija Qt-a koja ima samo gole biblioteke (ala Redistributable). Na Linux-u ima paket menadžer koji sve rešava. Na Windows-u moraju i Qt dll-ovi (ali samo oni potrebni) da budu deo instalacije, ili bi možda instalacioni program mogao da pretraži neke karakteristične foldere na računaru da vidi da li možda već ima Qt dll-ova, pa da njih iskorsiti, mada nisam siguran u pouzdanost te varjante, jer ko zna da li su kompjalirani sa MSVC ili sa GCC, da li imaju omogućene exception-e i koju vrstu (dwarf, seh ili sjlj). Tako da je najbolje da aplikacija uvek koristi one dll fajlove sa kojima je kompajlirana -> znači pakovati dll-ove sa aplikacijom.
E sad nevolje kod kopiranja u drugoi folder. Kad se exe linkuje on u sebi ima reference na dll-ove, ali kakve reference?. Možda ima apsolutne putanje do dll-ova, a možda su relativne. Ako su relativne onda neće moći da ih nađe kad pomeriše exe na drugo mesto. Exe mora biti linkovan sa dll-ovima koji se nalaze u folderu u koji ga kompajler izbaci (pa onda svi zajedno mogu da šetaju). Pretpostavljam da qmake ima neke opcije za deployment, odnosno da automatski kopira potrebne dll-ove u isti folder sa exe-om. Ovde -> http://stackoverflow.com/questions/8...project-output imaš neke tehnike automatizacije ovog procesa preko qmake-a (odnosno pisanja u .pro fajl tvog projekta). A ona poruka o grešci samo znači da je pozvana funkcija abort() i ništa više, ko zna šta je bilo. |
21.2.2013, 16:58 | #27 |
Član
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
|
Re: Qt creator
Kako da iz dialog prozora putem neke funkcije pri zatvaranju istog prosledim vrednost nazad u mainwindow?
|
21.2.2013, 22:57 | #28 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.162
Zahvalnice: 2.079
Zahvaljeno 4.921 puta na 2.857 poruka
|
Re: Qt creator
|
26.2.2013, 23:59 | #29 |
Član
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
|
Re: Qt creator
Da li u qt-u pri pristupu fajlovima i citanje istih treba da se citaju u malim chunkovima(npr. 4kB) ili to kod njega nije slucaj? I moze li neko da objasni sta koristiti, QFile, QDevice,QIODevice, ne razumem sta za koji dodje...
Pokusavam da neki program sto sam radio u C-u napisem u qt pa ne znam koji pristup uzeti. Npr. za citanje fajlova ima read raw data, read binary itd. pa me pomalo buni. Hvala unapred. |
27.2.2013, 10:43 | #30 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
Za pisanje i čitanje iz fajlova ti treba QFile, a QIODevice je abstraktna nadklasa (QDevice ne postoji). Ali što se tiče čitanja i pisanja QFile radi samo sa nizovima bajtova (char*) i QByteArray, odnosno na niskom nivou. Ako treba da čitaš ili upisuješ tekst, onda ti treba QTextStream (kome daješ QFile u konstruktoru) ima operatore << i >> za sve tipove podataka koje konvertuje u tekst pri pisanju i nazad pri čitanju, a ako hoćeš da upisuješ binarne podatke (brojeve) imaš QDataStream koji takođe ima operatore << i >> za sve tipove brojeva.
Dokumentacija: QIODevice, QFile, QTextStream, QDataStream. Poslednja ispravka: ivan90BG (27.2.2013 u 11:52) |
28.2.2013, 22:23 | #31 | |
Član
Član od: 26.5.2007.
Poruke: 278
Zahvalnice: 16
Zahvaljeno 102 puta na 66 poruka
|
Re: Qt creator
Citat:
Ako hoces da ih automatski iskopiras pri build-ovanju dodaj ovo u tvoj .pro fajl (ovo je primer kako da iskopiras QtCore.dll) Kod:
QMAKE_POST_LINK += $$QMAKE_COPY $$[QT_INSTALL_LIBS]/QtCore.dll $$DESTDIR |
|
1.3.2013, 14:42 | #32 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Qt creator
Aj čisto da pitam, jel ima neko ideju kako bih mogao Qt(QML il bilo šta što spada u Qt) mogao da integrišem sa nekim pseudokodom?
Ideja je da mi se objekti pomeraju levo desno u zavisnosti od koda koji mu ja unesem (kao korisnik). Pseudokod bi bio neki mini "jezik" koji bi ja definisao |
1.3.2013, 22:15 | #33 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
Termin "pseudokod" podrazumeva kod koji nije napisan ni u jednom programskom jeziku.
Ono što ti tražiš je da omogućiš skriptovanje u tvojoj aplikaciji. Kada bi sam implementirao to što si rekao trebao bi minimum da napišeš parser, semantički validator, i nekakav engine koji bi to izvršio. U zavisnosti od toga kolike mogućnosti misliš da daš tom jeziku (da li će svi aspekti biti potpuno fiksirani ili će imati nekakvu ekstenzibilnost) ovo pisanje od nule može da ispadne sasvim lako i zanimljivo, a može i da ispadne vrlo obimno. Ako ne želiš da se upuštaš u to, Qt već ima ono što ti treba, a to je JavaScript engine (JavaSriptCore). Pogledaj dokumentaciju, počni od QJSEngine klase (ona je deo QtQml modula) U kratko on ti obezbeđuje parsiranje, validaciju koda, kompajliranje, ti treba samo da napraviš okruženje, a to znači da treba da definišeš objekte koji će biti dostupni iz JavaScript koda, koje će metode i property-e da imaju (to sve definišeš u C++ kodu, kod metoda takođe pišeš u C++-u). Onda mu samo daš kod koji je korisnik ukucao da ga evaluira, i tada će engine zvati tvoje C++ metode. |
1.3.2013, 23:31 | #35 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
^He, nisam znao da Python već ima sve sređeno za embed-ovanje. To je odlična mogućnost.
|
2.3.2013, 0:26 | #36 |
Starosedelac
Član od: 27.12.2005.
Lokacija: Pančevo
Poruke: 1.303
Zahvalnice: 63
Zahvaljeno 438 puta na 328 poruka
|
Re: Qt creator
Može i Lua.
|
2.3.2013, 10:18 | #37 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Qt creator
Znam šta je pseudokod xD Zato sam i napisao jer ja hoću da definišem neku vrstu jezika sa veoma malim brojem komandi (plus kontrola toka).
Nije mi bitno za sad kako će da se skriptuje (drilovali su me sa prevođenjem jezika prošli semestar, tako da ću lako da napišem parser). Pretpostavimo da je za početak neki skript jezik u pitanju. Interesuje me jel postoji mogućnost da ja kucam u tom skriptu recimo listu i par komandi za brisanje čvora il čega već, a da u drugom prozoru meni crta povezane kružiće i eventualno neku animaciju? |
2.3.2013, 10:48 | #38 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Qt creator
Ako ti definišeš jezik i napiše parser i interpreter, onda nije više pseudokod, tada je postao pravi jezik.
Elem, naravno da može, to možeš i sa QJSengine, i sa Python-om, kao što sam rekao engine zove funkcije i metode koje su deo koda aplikacije, one mogu da rade bilo šta, znači mogu da rade nešto sa GUI-jem. Ako me moći prozrevanja ne varaju , ti hoćeš da napišeš edukativnu aplikaciju koja će grafički da demonstrira internalije tipičnih struktura podataka i algoritama, i to preko tekstualnih komandi (što bi mnogim studentima dobro došlo). Pa ako se taj mini jezik koji imaš na umu sastoji od fiksnih komandi, a ti već znaš kako da napišeš lexer-parser, možeš onda to i sam da napraviš. Za svaku komandu češ imati po jednu funkciju ili metod koji će da radi tu operaciju na GUI-ju koju treba. Kad korisnik odkuca listu komandi, program parsira, proveri da li je svaka komanda validna, u isto vreme se komande konvertuju u neku među forumu (koja se recimo sastoji od opcode-ova i argumenata) i onda kreneš da ih izvršavaš (za svaku komandu pozivaš odgovarajući metod). Blo bi dobro da te metode bacaju izuzetke i da imaš brojač komandi, da bi mogao da uhvatiš i izbacih korisniku runtime greške sa brojem komande (recimo da rekonstruišeš tekstualnu komandu iz među forme, ili da imaš debug informacije u vidu asocijacije brojeva redova u tekstualnom fajlu i pozicije u među formi). A ako hoćeš baš da se otegneš , možeš da probaš sa JIT kompajliranjem. Verovatno znaš za LLVM biblioteku. Umesto da tokom parsiranja praviš svoju međuformu, samo gradiš LLVM funkciju, onda je kompajliraš, dobiješ jedan pointer i pozoveš ga. Poslednja ispravka: ivan90BG (2.3.2013 u 17:33) Razlog: debug info |
7.4.2014, 1:36 | #39 |
Član
Član od: 26.5.2007.
Poruke: 278
Zahvalnice: 16
Zahvaljeno 102 puta na 66 poruka
|
Re: Qt creator
Pozdrav svima:
Napravio sam plugin za Qt Creator koji iscrtava drvo include-ova. Dvoklik na item prikazuje/skriva koji su sve fajlovi include-ovani iz njega. Pokrecete ga tako sto iz Tools menija i odaberete Display include tree, precica je CRTL+ALT+I (slovo i ) Napomena: Morate imati fajl otvoren u editoru za sada. Kasnije cu dodati da se opcija prikazuje i u kontekstnom meniju za fajlove. Download je trenutno na mom GitHub-u: https://github.com/pivonroll/Qt-Crea.../include_graph Jedna slicica: |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
FPS Creator | Uros Ducic | Pravljenje igara | 23 | 25.6.2009 14:32 |
Station Playlist Creator? | Tasha29 | Foto i audio/video | 0 | 21.11.2008 16:38 |
Dvd Creator? | bole083 | Aplikativni softver | 2 | 23.2.2007 23:54 |
LOGO CREATOR | Isko | Aplikativni softver | 7 | 5.11.2006 15:02 |
Intervideo windvd creator i titl | Zoran_KS | Video/TV softver | 2 | 18.1.2006 23:08 |