code::blocks + Qt4 -> mały problem

0

Zacząłem przerabiać sobie ten mały tutorial:
http://zetcode.com/tutorials/qt4tutorial/firstprograms/
No, ale widzę niestety dwie rzeczy:

  1. nie chodzą w ogóle biblioteki do konsolowych aplikacje w gt4 (mniej ważne)
  2. jak robię graficzną aplikacje to niestety wyskakuje tylko samo okienko: tak jakby działa tylko stworzenie okna oraz nadanie tytułu, inne rzeczy jak przyciski itd w ogóle nie działają, choć kod się kompiluje.
    Używam jako IDE code::blocks bo dobrze mi się z nim pracuje (system: Ubuntu).
    Z góry dzięki za pomoc.
0

Hmm a porównaj sobie działanie na innym środowisku, np KDevelop.

0

Twoje aplikacje mają taki problem, czy dema z samego Qt?
Jeśli twoje aplikacje nie działają jak trzeba to znaczy, że ty coś źle robisz.

0

Nie koniecznie moje :) Chociażby z tego tutoriala co dałem linka.

0

Wiesz parę miesięcy temu używałem Qt na Ubuntu (znajomy nadal to robi) i wszystko działo/a jak należy.

Do każdego connect dopisz coś takiego:

book ok;
ok = connect( .... );
Q_ASSERT_X(ok, "nazwa lokalizacji", "Nie udane połączenie SIGNAL/SLOT: ??????");

Najwyraźniej masz literówkę w nazwach slotów/sygnałów (tego kompilator nie wykryje).
Poza tym przejrzyj logi programu, czy nie narzeka, że coś jest nie tak.
Polecam zainstalować Qt Creator wtedy nazewnictwo slotów i sygnałów nie zostanie przekręcone.

0

ehhh....probóję w qt creator tak jak mówiłeś, ale coś źle robię. Dla przykładu pt "A tooltip" z tutoriala z którego korzystam mam błedy kompilacji:

Uruchamianie kroków budowania dla projektu test...
Uruchamianie: /home/radek/qtsdk-2010.01/qt/bin/qmake /home/radek/test/test/test.pro -spec linux-g++ -r CONFIG+=debug
/home/radek/test/test/test.pro Unknown test function: int main
/home/radek/test/test/test.pro Parse Error ('int screenWidth;')
/home/radek/test/test/test.pro Unterminated conditional block at end of file
Error processing project file: /home/radek/test/test/test.pro
Zakończono kodem wyjściowym 3.
Błąd podczas budowania projektu test
Podczas wykonywania kroku budowania "QMake"

0

sorry ze jeden post pod drugim ale sie niestety nie zarejestrowałem i nie mogę teraz edytować postu.
Mój błąd z tym QtCreator. W nim mi wszystko działa. Dlaczego więc pod code::blocksem coś nie chodzi?
Coś mi pisałeś żebym do "connect" coś dodał, ale nie bardzo rozumiem o co chodzi?

0

Witam jeszcze raz :)
Poniższy wygenerowany kod w code::blockie chodzi:

#include <QApplication>
#include <QFont>
#include <QPushButton>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QPushButton quit("Quit");

    quit.resize(75, 30);
    quit.setFont(QFont("Times", 18, QFont::Bold));

    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));

    quit.show();

    return app.exec();
}

A teraz również kod (z tutoriala), który generuje button. Chodzi pod QtCreator,ale pod code::block'sem nie (moze to coś pomoże):

#include <QApplication>
#include <QDesktopWidget>
#include <QWidget>
#include <QPushButton>


class MyButton : public QWidget
{
 public:
     MyButton(QWidget *parent = 0);
};

void center(QWidget *widget, int w, int h)
{
  int x, y;
  int screenWidth;
  int screenHeight;

  QDesktopWidget *desktop = QApplication::desktop();

  screenWidth = desktop->width();
  screenHeight = desktop->height();
 
  x = (screenWidth - w) / 2;
  y = (screenHeight - h) / 2;

  widget->move( x, y );
}

MyButton::MyButton(QWidget *parent)
    : QWidget(parent)
{
  int WIDTH = 250;
  int HEIGHT = 150;

  setFixedSize(WIDTH, HEIGHT);

  QPushButton *quit = new QPushButton("Quit", this);
  quit->setGeometry(50, 40, 75, 30);

  center(this, WIDTH, HEIGHT);

  connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}


int main(int argc, char *argv[])
{
  QApplication app(argc, argv);  

  MyButton window;

  window.setWindowTitle("button");
  window.show();

  return app.exec();
}

</quote>

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