Na ovoj stranici

Qt Widgets Upute: Qt aplikacija

Ovaj vodič opisuje kako koristiti Qt Creator za izradu male Qt aplikacije, Tekstni pretraživač. To je pojednostavljena verzija primjera Tekstni pretraživač 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 novog projekta

  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) kako biste otvorili dijalog Define Build System.

    Definirajte dijalog sustava za izgradnju

  6. U Build system-u 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 omogućuje podrška za lokalizaciju aplikacije. Druge jezike možete dodati 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. Pregledajte 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 ova uputstva. Da biste se vratili na ova uputstva, 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 pripadajućim kôdom.

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

Popunite nedostajuće dijelove

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

Dizajnirajte korisničko sučelje

Korisničko 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:Napomena: Za jednostavno pronalaženje widgeta upotrijebite polje za pretraživanje na vrhu xml-ph-000

    Dodavanje widgeta u korisničko sučelje Text Findera

    Napomena: Za jednostavno pronalaženje widgeta upotrijebite polje za pretraživanje na vrhu Widget Box. 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 na 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 macOS-u) za primjenu vodoravnog rasporeda (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čko 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:
    • Find Desnom tipkom miša kliknite gumb Pronađi 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-a, 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 datotek

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, čitanje pomoću QTextStream i zatim prikazivanje 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);
    }
    Za korištenje xml-ph-0000@deepl.internal i xml-ph-0001@deepl.internal dodajte sljedeće #include-ove
  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);
    }
    Dodajte liniju za pozivanje xml-ph-0000@deepl.internal u konstruktor:
  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);

Stvorite 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. Idite na File > New File > Qt > Qt Resource File > Choose.

    Dijalog za novu datoteku

    Otvorit će se dijalog Choose the Location.

    U dijaloškom okviru xml-ph-0000@deepl.internal unesite textfinder.

    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 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 crticom (/).
  7. Odaberite Add Files kako biste pronašli i dodali input.txt.

    Uređivanje resursnih datoteka

Dodajte resurse u datoteku projekta

Da bi se tekstualna datoteka prikazala kada pokrenete aplikaciju, morate navesti datoteku s resursima kao izvorni fajl u datoteci CMakeLists.txt 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 Trči (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.