Nowe posty

xx Mulenie strony [Tylko informacja] (0)
Wczoraj o 16:36:43
xx Film Hakerzy dla wolności 2018 lektor (0)
Wczoraj o 08:47:38
xx Mageia instalacja (1)
2020-02-24, 14:43:32
xx Zlecę skrypt w bashu (0)
2020-02-19, 14:07:39
xx Nadawanie praw katalogom takich, jak nazwa usera (4)
2020-02-17, 14:15:18
xx Fedora na laptopie HP 15-bs152nw brak wifi (44)
2020-02-16, 12:17:18
xx Komputer do nauki linuxa (10)
2020-02-15, 07:03:28
xx Patronat serwisow internetowych. (1)
2020-02-13, 00:13:24
xx Xfce-terminal v 0.8.7.4 - jak ustawić wklejanie skopiowanego tekstu? (3)
2020-02-12, 18:59:24
xx HD ISO, jak odzyskać starsze pliki (6)
2020-02-12, 10:54:31

Autor Wątek: Rysowanie wykresów w QT 4  (Przeczytany 12874 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 2
    • Zobacz profil
Rysowanie wykresów w QT 4
« dnia: 2008-05-16, 17:02:41 »
Witam,
Chciałbym stworzyć widgeta do rysowania wykresów w QT 4. Ma on wykreślać sygnały przekazywane z urządzenia zewnętrznego na bierząco. Czy ktoś mógłby mi powiedzieć jakich klas użyć do stworzenia takiego widgeta?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1188
    • Zobacz profil
Rysowanie wykresów w QT 4
« Odpowiedź #1 dnia: 2008-05-17, 01:19:52 »
QGraphicsScene powinno pasować. Plus QGraphicsView do wyświetlenia sceny.

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 2
    • Zobacz profil
Rysowanie wykresów w QT 4
« Odpowiedź #2 dnia: 2008-05-18, 17:51:55 »
Dzieki za pomoc! Nie jestem jeszcze zbyt obeznany w Qt i pojawił się problem. Chcę mieć klasę, która będzie zawierać pole typu QGraphicsScene i pole QGraphicsView.
Wygląda to tak:

class linia : public QWidget
 {
     Q_OBJECT

 public:
     linia(QWidget *parent = 0);
     int x,y;
      QGraphicsScene scene;
      QGraphicsView view;
 public slots:
     void rysuj_linie( );

 };

 void linia::rysuj_linie()
 {
   
   QLineF line1(20+x,3,40+y,51);
   scene.addLine(line1);
   x+=10; y+=4;
   view.centerOn(x,y);
 
 };

inia::linia(QWidget *parent)
     : QWidget(parent)
 {
   QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()),
             this, SLOT(rysuj_linie() ));
   x=y=0;
 
  QGraphicsView view(&scene);
   timer->start(4);
 };

niestety po odpaleniu programu pokazuje sie tylko białe tło, zamiast rysować linie i scrolować...Czy ktoś mógłby mi z tym pomóc?

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 32
    • Zobacz profil
Rysowanie wykresów w QT 4
« Odpowiedź #3 dnia: 2008-05-30, 15:49:13 »
Powinieneś napisać metodę
void paintEvent(QPaintEvent *event);
Jest ona wywoływana zawsze po odświeżeniu okna.