Qt: Jak oprogramować okno stworzone w QtDesignerze?

0

Witam.
Piszę prosta aplikację w Qt. Stworzyłem główne okno w QtDesignerze i nie wiem co dalej. Jak mam zacząć je oprogramowywać?
Wystarczy że otworzę je w QtCreatorze? Czy trzeba coś więcej?
Proszę o pomoc ludzi, którzy coś w Qt umieją :)
Dziękuję wszystkim i pozdrawiam.

2

jeśli używasz QtCreatora to nie potrzebujesz QtDesignera.

0

Pewnie to głupie pytanie, ale czym różni się QTCreator od QTDesignera? O_o

2

Qt Creator to pełne IDE ze zintegrowanym designerem formularzy, Qt Designer to sam designer.

Qt Designera używa się jeśli używasz innego IDE niż Qt Creator, np. Visual Studio.

0

Dobra panowie udało mi się to moje okno wraz z toolboxem włączyć do projektu.
Chciałem jednak dodać canvę, na której będę rysował gradient i zasłania mi ona toolbox'a.
Co mam zrobić? Główne okno mam klasy QMainWindow i tam mam QWidget o nazwie central widget - chyba standardowo.
i teraz próbuję dodać do tego centralwidgetu moją canvę (utworzoną w kodzie), ale też nie wiem jak to zrobić. Nie mogę użyć addWidget bo błąd wywala.
Jak dodałem nowy gridlayout i do niego canvę to mi zasłoniła toolboxa jak już wspomniałem.
Pomocy.

2

Jak chcesz robić własne rysowanie, to powinieneś stworzyć własnego widgeta.
By go dodać do okna tworzonego w Qt Designer, w jego widku:
#Wstawiasz obiekt widget tam, gdzie chcesz mieć twego "canvasa" widgeta

  1. prawy przycisk myszy na tym widgecie "Zastąp..."
  2. wpisujesz dane swojego widgeta
  3. wybiera go i klikasz zastąp

Ta twoja klasa może wyglądać tak:

#ifndef TESTWIDGET_H
#define TESTWIDGET_H

#include <QWidget>

class TestWidget : public QWidget
{
    Q_OBJECT
public:
    explicit TestWidget(QWidget *parent = 0);

signals:

public slots:

protected:
    void paintEvent(QPaintEvent * );

};

#endif // TESTWIDGET_H

//=====================================
#include "testwidget.h"
#include <QPainter>

TestWidget::TestWidget(QWidget *parent) :
    QWidget(parent)
{
}

void TestWidget::paintEvent(QPaintEvent *)
{
    QPainter p(this);
    p.setPen(Qt::red);
    QRect r = rect();
    p.drawLine(r.topLeft(), r.bottomRight());
    p.drawLine(r.topRight(), r.bottomLeft());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1