Trey Weaver’s Blog.

Trey Weaver’s Blog.

Lordag 16. februar 2013.

QT Console Application Template Tutorial.

int main (int argc, char * argv [])

QCoreApplication app (argc, argv);

// 10ms det vil starte utforelsen i MainClass.run-rutinen;

QTimer :: singleShot (10, & minMain, SLOT (run ()));

En forekomst av MainClass-klassen som heter myMain, er opprettet. Et signal i den MainClass-kalt «ferdig» avsluttes faktisk programmet. Et signal fra appen fungerer med et spor i minMain kalt omToQuitApp En 10ms timer sender et signal til sporet i myMain-klassen. Dette bootstraps koden din. Den siste linjen & # 8220; returner app.exec () & # 8221; starter alle QT-meldingene, inkludert Slots and Signals-systemet, pa tvers av ulike trader. Da minMain far signalet pa & # 8220; lope & # 8221; Slot QT-applikasjonsstrukturen er oppe og gar.

Na kan vi lage headerfilen for MainClass; mainclass.h.

klasse MainClass: offentlig QObject.

eksplisitt MainClass (QObject * foreldre = 0);

/// Ring dette for a avslutte soknaden.

/// Signal for a avslutte, dette er koblet til Application Quit.

/// Dette er sporet som blir kalt fra hoved for a starte alt.

/// men alt er satt opp i Constructor.

/// spor som far signal nar programmet er i ferd med a slutte.

Ring & # 8220; avslutte () & # 8221; nar du vil avslutte programmet The & # 8220; finished & # 8221; signalet sendes til appen for a lukke programmet. Spillet «##2020; run () er hvor koden din begynner & # 8221; blir kalt 10ms etter at programmet er startet, og omToQuitApp () -sporet blir kalt etter at & # 8220; ferdig & # 8221; signalet utfores av QT-applikasjonen.

Den siste tingen a se pa er den faktiske mainclass.cpp-koden.

// fa forekomsten av hovedapplikasjonen.

// sett alt her.

// lage noen globale objekter.

// oppsett feilsoking og advarselsmodus.

// Alle QT-meldinger kjorer pa dette punktet, sa trader, signaler og spor.

// vil alle fungere som forventet.

// Legg til hovedkoden din her.

qDebug () & lt; & lt; «MainClass.Run kjorer»;

// du ma ringe opp nar du er ferdig eller programmet vil bli i.

// Du kan gjore noe opprydding her.

// sa send ut ferdig for a signalere CoreApplication a avslutte.

// dette er et bra sted a slette objekter som ble opprettet i.

// konstruktor og / eller for a stoppe noen trader.

// sovn (1); // vent pa trader a stoppe.

// slette objekter.

Konstruktoren far en forekomst av QT-applikasjonen og setter den til & # 8220; app & # 8221; & # 8220; lop & # 8221; slot er hvor koden din faktisk vil starte kjoring. Nar du kjorer koden din, ma du ringe & # 8220; avslutte & # 8221; a stoppe soknaden. Dette vil fortelle QT-applikasjonen a avslutte. Mens QT-applikasjonen er i ferd med a avslutte, vil den utfore sporet omToQuitApp (). Dette er et godt sted a gjore noe opprydding arbeid.

Vel, jeg haper dette hjelper deg med a fa en QT Console-applikasjon oppe og kjorer raskt.

7 kommentarer:

Hyggelig blogginnlegg Trey! Jeg er ny pa QT, men nyter rammen sa langt. Jeg trengte et eksempel pa hvordan a skrive konsollprogrammer i verktoyet.

Hei Trey, takk for det perfekte blogginnlegget! Jeg lurer bare pa hvorfor trenger jeg pekeren til QCoreApplication i MainClass (QCoreApplication * app)? Takk.

Veldig fint innlegg. Veldig verdsatt!

Det forste eksempelet pa en Qt-konsollapplikasjon med hendelseslokke som kommer ut rent. Ekstremt hjelpsom, takk!

Trey, takk for eksemplet. Et mer avansert sporsmal, siden du har brukt konsollapper med Qt i produkter – hvordan handterer du brukerinngang i konsollappen din? Gar du en egen trad som avstemninger stdin med jevne mellomrom?