Na ovoj stranici

Qt Widgets Upute: Qt aplikacija

Ovaj vodič opisuje kako koristiti Qt Creator za izradu male Qt aplikacije, Tekstni pronalazač. To je pojednostavljena verzija primjera Tekstni pronalazač iz Qt UI Tools. Koristit ćete Qt Widgets Designer za izradu korisničkog sučelja aplikacije od Qt kontrola i uređivač koda za pisanje logike aplikacije u C++-u.

Primjer pronalazača teksta

Kreira projekt Text Finder

  1. Idite na File > New Project > Application (Qt) > Qt Widgets Application.

    Dijalog Novi projekt

  2. Odaberite Choose za otvaranje dijaloga Project Location.

    Dijalog Lokacija projekta

  3. U prozoru Name upišite TextFinder.
  4. U Create in unesite putanju do datoteka projekta. Na primjer, C:\Qt\examples.
  5. Odaberite Next (na Windowsu i Linuxu) ili Continue (na macOS-u) za otvaranje dijaloga Define Build System.

    Definiraj dijalog sustava za izgradnju

  6. U Build system odaberite CMake kao sustav za izgradnju projekta.
  7. Odaberite Next ili Continue za otvaranje dijaloga Class Information.

    Dijalog informacija o razredu

  8. U Class name upišite TextFinder kao naziv klase.
  9. U Base class odaberite QWidget kao osnovnu klasu.

    Napomena: Header file, Source file i Form file automatski se ažuriraju kako bi odgovarali nazivu klase.

  10. Odaberite Next ili Continue za otvaranje dijaloga Translation File.

    Dijalog datoteke za prijevod

  11. U Language možete odabrati jezik na koji planirate prevesti aplikaciju. Time se postavlja podrška za lokalizaciju aplikacije. Možete dodati druge jezike kasnije uređivanjem datoteke projekta.
  12. Odaberite Next ili Continue za otvaranje dijaloga Kit Selection.

    Dijalog odabira kompleta

  13. Odaberite build i run kitove za svoj projekt.
  14. Odaberite Next ili Continue za otvaranje dijaloga Project Management.

    Dijalog za upravljanje projektima

  15. Provjerite postavke projekta i odaberite Finish (na Windowsu i Linuxu) ili Done (na macOS-u) za stvaranje projekta.

Napomena: Projekt se otvara u načinu rada Edit, koji skriva ove upute. Da biste se vratili na ove upute, otvorite način rada Help.

Projekt TextFinder sada ima sljedeće datoteke:

  • main.cpp
  • textfinder.h
  • textfinder.cpp
  • textfinder.ui
  • CMakeLists.txt

Sadržaj projekta TextFinder

Datoteke .h i .cpp dolaze s potrebnim pripremnim kodom.

Ako ste odabrali CMake kao sustav za izgradnju, Qt Creator je za vas stvorio projektnu datoteku za CMakeLists.txt.

Popunite nedostajuće dijelove

Počnite s dizajniranjem korisničkog sučelja, a zatim prijeđite na popunjavanje nedostajućeg koda. Na kraju dodajte funkcionalnost pretraživanja.

Dizajnirajte korisničko sučelje

Korisnički sučelje za pronalaženje teksta

  1. U načinu rada Edit dvaput kliknite datoteku textfinder.ui u prikazu Projects kako biste pokrenuli integrirani Qt Widgets Designer.
  2. Povucite sljedeće widgete na obrazac:

    Dodavanje widgeta u korisničko sučelje Text Findera

    Napomena: Za jednostavno pronalaženje widgeta upotrijebite polje za pretraživanje na vrhu Widget Box a. Na primjer, da biste pronašli widget Label, počnite upisivati riječ label.

    Filtriraj

  3. Dvostruko kliknite widget Label i unesite tekst Keyword.
  4. Dvaput kliknite widget Push Button i unesite tekst Find.
  5. U prikazu Property Editor promijenite objectName u findButton.

    Promjena imena objekata

  6. Odaberite Ctrl+A (ili Cmd+A) za odabir widgeta i odaberite Lay out Horizontally (ili pritisnite Ctrl+H na Linuxu ili Windowsu ili Ctrl+Shift+H na macOSu) kako biste primijenili vodoravni raspored (QHBoxLayout).

    Primjena vodoravnog rasporeda

  7. Povucite widget Text Edit (QTextEdit) na obrazac.
  8. Odaberite područje zaslona, a zatim odaberite Lay out Vertically (ili pritisnite Ctrl+L) kako biste primijenili okomiti raspored (QVBoxLayout).

    Korisnički sučelje za pronalaženje teksta

    Primjena vodoravnog i okomitog rasporeda osigurava da se korisničko sučelje aplikacije prilagođava različitim veličinama zaslona.

  9. Da biste pozvali funkciju pretraživanja kada korisnici odaberu gumb Find, koristite mehanizam Qt signala i slotova. Signal se emitira kada se dogodi određeni događaj, a slot je funkcija koja se poziva kao odgovor na određeni signal. Qt widgeti imaju unaprijed definirane signale i slotove koje možete koristiti izravno iz Qt Widgets Designer. Da biste dodali slot za funkciju pretraživanja:
    • Desnom tipkom miša kliknite gumb Find da biste otvorili kontekstualni izbornik.
    • Odaberite Go to Slot > clicked(), a zatim odaberite OK.

      Time se u zaglavnu datoteku textfinder.h dodaje privatni slot on_findButton_clicked(), a u izvorni kod textfinder.cpp privatna funkcija TextFinder::on_findButton_clicked().

  10. Odaberite Ctrl+S (ili Cmd+S) za spremanje promjena.

Za više informacija o dizajniranju obrazaca pomoću Qt Widgets Designer, pogledajte priručnikQt Widgets Designer .

Dovršite glavu datoteke

Datoteka textfinder.h već sadrži potrebne #includes, konstruktor, destruktor i objekt Ui. Potrebno je dodati privatnu funkciju loadTextFile() za čitanje i prikaz sadržaja ulazne tekstualne datoteke u QTextEdit.

  1. U prikazu Projects u načinu rada Edit dvaput kliknite datoteku textfinder.h da biste je otvorili za uređivanje.
  2. Dodajte privatnu funkciju u odjeljak private, nakon pokazivača Ui::TextFinder:
    private slots:
        void on_findButton_clicked();
    
    private:
        Ui::TextFinder *ui;
        void loadTextFile();

Dovršite izvorni datoteku

Sada kada je zaglavna datoteka dovršena, prijeđite na izvorni kod textfinder.cpp.

  1. U prikazu Projects u načinu rada Edit dvaput kliknite datoteku textfinder.cpp da biste je otvorili za uređivanje.
  2. Dodajte kod za učitavanje tekstualne datoteke pomoću QFile, njezino čitanje pomoću QTextStream i prikaz na textEdit pomoću QTextEdit::setPlainText():
    void TextFinder::loadTextFile()
    {
        QFile inputFile(":/input.txt");
        inputFile.open(QIODevice::ReadOnly);
    
        QTextStream in(&inputFile);
        QString line = in.readAll();
        inputFile.close();
    
        ui->textEdit->setPlainText(line);
        QTextCursor cursor = ui->textEdit->textCursor();
        cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1);
    }
  3. Za korištenje QFile i QTextStream, dodajte sljedeće #include u textfinder.cpp:
    #include "./ui_textfinder.h"
    #include <QFile>
    #include <QTextStream>
  4. Za utor on_findButton_clicked() dodajte kod za izdvajanje niza za pretraživanje i upotrijebite funkciju QTextEdit::find() za pronalaženje niza za pretraživanje unutar tekstualne datoteke:
    void TextFinder::on_findButton_clicked()
    {
        QString searchString = ui->lineEdit->text();
        ui->textEdit->find(searchString, QTextDocument::FindWholeWords);
    }
  5. Dodajte redak za pozivanje loadTextFile() u konstruktoru:
    TextFinder::TextFinder(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::TextFinder)
    {
        ui->setupUi(this);
        loadTextFile();
    }

Sljedeći redak koda automatski poziva slot on_findButton_clicked() u generiranoj ui_textfinder.h datoteci pomoću uic-a:

QMetaObject::connectSlotsByName(TextFinder);

Kreira resursnu datoteku

Potrebna vam je resursna datoteka (.qrc) u koju ugrađujete ulaznu tekstualnu datoteku. Ulazna datoteka može biti bilo koja .txt datoteka koja sadrži odlomak teksta. Napravite tekstualnu datoteku naziva input.txt i spremite je u mapu textfinder.

Za dodavanje resursne datoteke:

  1. File New File Qt Qt Resource File ChooseIdite na Uređivanje > Uvoz > Uvoz novog resursa > Uvoz novog resursa.

    Dijalog za novu datoteku

    Otvorit će se dijalog Choose the Location.

    Odaberite dijalog Lokacija

  2. U dijalogu Name unesite textfinder.
  3. U dijalogu Path unesite putanju do projekta i odaberite Next ili Continue.

    Otvara se dijalog Project Management.

    Dijalog za upravljanje projektima

  4. U dijalogu Add to project odaberite TextFinder i odaberite Finish ili Done za otvaranje datoteke u uređivaču koda.
  5. Odaberite Add Prefix.
  6. U Prefix u zamijenite zadani prefiks s crticom (/).
  7. Odaberite Add Files kako biste pronašli i dodali input.txt.

    Uređivanje resursnih datoteka

Dodajte resurse u datoteku projekta

CMakeLists.txt Da bi se tekstualna datoteka prikazala kada pokrenete aplikaciju, morate navesti datoteku s resursima kao izvorni datoteku u datoteci s resursima koju je čarobnjak stvorio za vas:

set(PROJECT_SOURCES
        main.cpp
        textfinder.cpp
        textfinder.h
        textfinder.ui
        ${TS_FILES}
        textfinder.qrc
)

Izgradite i pokrenite svoju aplikaciju

Sada kada imate sve potrebne datoteke, odaberite gumb Pokreni (Run) za izgradnju i pokretanje vaše aplikacije.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.