[C++] Qt Creator

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
maliodpalube
Postovi: 135
Pridružen/a: 18 stu 2010, 06:51
Spol: M
OS: Windows 7
Lokacija: Sesvetski Kraljevec

Re: [C++] Qt Creator

Post Postao/la maliodpalube »

Uf...
Ovo mi je već jednom napravio i nisam uspio dokučiti zbog čega:

slika
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: [C++] Qt Creator

Post Postao/la stefan »

maliodpalube je napisao/la:Cilj je da se prilikom pokretanja programa forma odmah resiza i da se kontrole poslože na mjesto. To se ne odnosi samo na glavnu formu, već na svaku koja će se pojavljivati. Inače, ne znam kako da dodam još jednu formu... trenutno se time bakćem.
aaa....
pa to ćeš rješiti na jednostavniji način.
prvo - slaganje kontrola i njihovo resajzanje i pozicioniranje u windowu ide automatski preko layouta. layouti su ti nužni za kreiranje GUI-ja. pročitaj si o njima obavezno.
što se tiče startanja maksimiziranog windowa, ubaci ovu liniju u konstruktor:

Kod: Označi sve

setWindowState(Qt::WindowMaximized);
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
maliodpalube
Postovi: 135
Pridružen/a: 18 stu 2010, 06:51
Spol: M
OS: Windows 7
Lokacija: Sesvetski Kraljevec

Re: [C++] Qt Creator

Post Postao/la maliodpalube »

Ma ne radi se samo o maximiziranju. Ona Prizna koju su neki downloadali se na svakoj rezoluciji fino rasporedi, iako inicijalno pokreće 5 formi (prozora). To je zato što raspored i veličine kontroliram iz koda, kad prepoznam rezoluciju screena. Isto volim raditi i s kontrolama na svakoj pojedinoj formi. Volim imati kontrolu nad kontrolama...

Inače, skužio sam nešto (baš sam blesav, svo vrijeme mi je pred nosom):

Kod: Označi sve

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->pushButton->setText("Proba");
    /*Ovdje idu moja podešenja forme*/
}

MainWindow::~MainWindow()
{
    delete ui; //što je ovo??
}
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: [C++] Qt Creator

Post Postao/la stefan »

ovaj ui ti sadrži sve što si "nacrtao" u Designeru.
u destruktoru MainWindow-a se oslobađa memorija koju je zauzeo ui objekt.
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: [C++] Qt Creator

Post Postao/la stefan »

stefan je napisao/la:ovaj ui ti sadrži sve što si "nacrtao" u Designeru.
u destruktoru MainWindow-a se oslobađa memorija koju je zauzeo ui objekt.
iz nesto.ui fajla (designer) se kreirakod koji se nalazi u ui_nesto.h fajl.
zato ga imaš u include-u

Kod: Označi sve

#include "mainwindow.h"
#include "ui_mainwindow.h"
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
maliodpalube
Postovi: 135
Pridružen/a: 18 stu 2010, 06:51
Spol: M
OS: Windows 7
Lokacija: Sesvetski Kraljevec

Re: [C++] Qt Creator

Post Postao/la maliodpalube »

Nisam danas stigao skoro ništa probavati. I sad, čim sam sjeo za laptop, odmah je zapelo. Zašto mi ovo ne radi?

Kod: Označi sve

    if ((fh=fopen("probna_datoteka.txt","w")) != NULL)
    {
        fprintf(fh,"%s\n",ui->label->text());
        fprintf(fh,"%s\n",ui->label_2->text());
        fclose(fh);
    }
Ne radi ni ovako:

Kod: Označi sve

    if ((fh=fopen("probna_datoteka.txt","w")) != NULL)
    {
        fprintf(fh,"%s\n",ui->label->text);
        fprintf(fh,"%s\n",ui->label_2->text);
        fclose(fh);
    }
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: [C++] Qt Creator

Post Postao/la stefan »

što ti točno ne radi?
text je funkcija! ovako koristi:

Kod: Označi sve

ui->label->text();
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
maliodpalube
Postovi: 135
Pridružen/a: 18 stu 2010, 06:51
Spol: M
OS: Windows 7
Lokacija: Sesvetski Kraljevec

Re: [C++] Qt Creator

Post Postao/la maliodpalube »

Pokaže mi warning:

cannot pass objects of non-POD type 'class QString'through'...'; call will abort at runtime

Programčić se pokrene, ali kad stisnem gumb za otvaranje falića, pojavi se prozor od windowsa... checking nešto... i na kraju kaže Close program.
maliodpalube
Postovi: 135
Pridružen/a: 18 stu 2010, 06:51
Spol: M
OS: Windows 7
Lokacija: Sesvetski Kraljevec

Re: [C++] Qt Creator

Post Postao/la maliodpalube »

Skužio sam ovu grešku (gore ima i slika):

collect2:Id returned 1 exit status

U mainwindow.h ostanu deklarirani slotovi koje sam u mainwindow.cpp izbrisao. Dodavanjem nekog slota on se automatski deklarira, ali njegovim brisanjem se deklaracija ne obriše automatski, nego je treba ručno maknuti.

Nikako ne mogu skužiti kako neke vrijednosti iz propertisa neke kontrole dodijeliti varijablama (ili dalje operirati s njima). Radi se o istom problemu kao u prethodnom postu. Ovaj put sam pokušao s kontrolom plainTextEdit. Klikom na button želim da se tekst iz plainTextEdit prepiše u plainTextEdit_2.

Kod: Označi sve

void MainWindow::on_pushButton_2_clicked()
{
    ui->plainTextEdit_2->setPlainText(ui->plainTextEdit->ovdje_ne_znam_kako_doći_do_tog_texta);
}
Pokušao sam i s poinerima, ali kvaka je u nepodudarnosti tipa varijabli za deklariranje. Taj tekst, bio on u labeli ili u plainTextEditu, očito nije string, pa onda ne funkcionira ovo:

Kod: Označi sve

char *pokazivac=&ui->label->text()
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

Re: [C++] Qt Creator

Post Postao/la stefan »

možda

Kod: Označi sve

void MainWindow::on_pushButton_2_clicked()
{
    ui->plainTextEdit_2->setPlainText(ui->plainTextEdit->toPlainText());
}
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
Odgovori