Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 11.2.2013, 12:42   #21
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom 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).
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 11.2.2013, 13:11   #22
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.162
Zahvalnice: 2.079
Zahvaljeno 4.921 puta na 2.857 poruka
Određen forumom 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)?
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 11.2.2013, 13:31   #23
Futuristic
Član
 
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
Određen forumom 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?
Priložene slike
Kliknite na sliku za veću verziju

Ime:	Untitled.png
Viđeno:	22 puta
Veličina:	30,3 KB
ID:	45482   Kliknite na sliku za veću verziju

Ime:	Untitled2.jpg
Viđeno:	25 puta
Veličina:	100,0 KB
ID:	45483  
Futuristic je offline   Odgovor sa citatom ove poruke
Stara 11.2.2013, 13:58   #24
Neky
Starosedelac
 
Član od: 15.6.2007.
Lokacija: Amsterdam
Poruke: 1.817
Zahvalnice: 463
Zahvaljeno 310 puta na 230 poruka
Određen forumom Re: Qt creator

QLineEdit ima metodu .setValidator, u PyQtu se koristi ovako:

Kod:
validator = QtGui.QIntValidator()
self.ui.lineKolicina.setValidator(validator)
a ako hoćeš da ga dodatno ograničiš na određeni opseg, samo mu proslediš parametre ovako:

Kod:
validator = QtGui.QIntValidator(0,7,self)
.

:edit:

evo i primer za C++

http://stackoverflow.com/questions/1...t-only-numbers
Neky je offline   Odgovor sa citatom ove poruke
Stara 11.2.2013, 15:06   #25
Futuristic
Član
 
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
Određen forumom 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);;
Futuristic je offline   Odgovor sa citatom ove poruke
Stara 11.2.2013, 16:53   #26
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom 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.
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 21.2.2013, 16:58   #27
Futuristic
Član
 
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
Određen forumom Re: Qt creator

Kako da iz dialog prozora putem neke funkcije pri zatvaranju istog prosledim vrednost nazad u mainwindow?
Futuristic je offline   Odgovor sa citatom ove poruke
Stara 21.2.2013, 22:57   #28
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.162
Zahvalnice: 2.079
Zahvaljeno 4.921 puta na 2.857 poruka
Određen forumom Re: Qt creator

http://doc.qt.digia.com/stable/qdialog.html#exec
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 26.2.2013, 23:59   #29
Futuristic
Član
 
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
Određen forumom 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.
Futuristic je offline   Odgovor sa citatom ove poruke
Stara 27.2.2013, 10:43   #30
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom 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)
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 28.2.2013, 22:23   #31
pivonroll
Član
 
Član od: 26.5.2007.
Poruke: 278
Zahvalnice: 16
Zahvaljeno 102 puta na 66 poruka
Određen forumom Re: Qt creator

Citat:
voodoo_ kaže: Pregled poruke
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)?
Ne postoji. Zasto? Zato sto Qt moze biti build-ovan sa raznim kompajlerima i raznim mkspec podesavanjima. Zbog ovoga nemoguce je da se obezbedi univerzalni redistributable. Zato moras sam da distribuiras Qt dll-ove od kojih zavisi tvoja aplikacija. Pogledas koji Qt koristis, gde se nalazi i samo iskopiras dll-ove u isti folder gde je .exe tvog programa.

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
pivonroll je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku pivonroll na korisnoj poruci:
Eddy (28.2.2013), voodoo_ (28.2.2013)
Stara 1.3.2013, 14:42   #32
Teva
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
Određen forumom 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
Teva je offline   Odgovor sa citatom ove poruke
Stara 1.3.2013, 22:15   #33
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom 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.
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 1.3.2013, 22:28   #34
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.162
Zahvalnice: 2.079
Zahvaljeno 4.921 puta na 2.857 poruka
Određen forumom Re: Qt creator

Ili da integrišeš Python ili Perl interpreter
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
ivan90BG (1.3.2013)
Stara 1.3.2013, 23:31   #35
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom Re: Qt creator

^He, nisam znao da Python već ima sve sređeno za embed-ovanje. To je odlična mogućnost.
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 2.3.2013, 0:26   #36
bvitnik
Starosedelac
 
Član od: 27.12.2005.
Lokacija: Pančevo
Poruke: 1.303
Zahvalnice: 63
Zahvaljeno 438 puta na 328 poruka
Određen forumom Re: Qt creator

Može i Lua.
bvitnik je offline   Odgovor sa citatom ove poruke
Stara 2.3.2013, 10:18   #37
Teva
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
Određen forumom 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?
Teva je offline   Odgovor sa citatom ove poruke
Stara 2.3.2013, 10:48   #38
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom 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
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 7.4.2014, 1:36   #39
pivonroll
Član
 
Član od: 26.5.2007.
Poruke: 278
Zahvalnice: 16
Zahvaljeno 102 puta na 66 poruka
Određen forumom 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:
Priložene slike
Kliknite na sliku za veću verziju

Ime:	inlcude_tree.png
Viđeno:	49 puta
Veličina:	65,4 KB
ID:	48707  
pivonroll je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku pivonroll na korisnoj poruci:
Geomaster (10.4.2014), ivan90BG (11.4.2014)
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


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


Sva vremena su po Griniču +2 h. Sada je 11:21.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com