QT -nybörjare.

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Snart lägger jag ner det här.... :evil:

Lyckades äntligen komma åt qextserialport-biblioteket, men så enkelt var det inte.. Det blev en massa fel. Orkar inte krångla mer med detta på ett tag. :wall:

Denna programvara verkar vara beroende av ytterligare bibliotek som jag inte ens ver var de kommer ifrån: <termios.h>, <sys/ioctl.h> och <sys/select.h> ??? och som tydligen förutsätts finnas där.
Senast redigerad av jesse 24 april 2011, 21:50:32, redigerad totalt 1 gång.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Jag förstår om ingen orkar svara på allt tjafs jag skriver i denna tråden, men här kommer en fråga..

(jag har nu fått igång serieporten och har byggt ett terminalprogram)

Jag vill ha lite debug-information utskrivet i konsolen, dvs vanlig utskrift med cout <<, men den känner inte igen cout, och än värre: det finns inget <iostream.h> !
#include <iostream.h>


build error: iostream.h : no such file or directory!

What the heck! Finns inte vanliga C++ bibliotek tillgängliga i QT Creator? Hur ska jag göra nu ??? :humm:
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Gaaahhh.. så mycket jobb... Det visar sig att mina böcker om C++ och tutorials är gamla... numera heter det #include <iostream> (utan .h)...

hur skulle jag ha vetat det? Det kan ju vara mycket mer än det som har ändrats ... Sedan vilken verion av ... ja, av vad??? ... är det C++ biblioteken som ändrats, kompilatorn eller QT Creator? För på mina andra utvecklingsmiljöer heter det fortfarande <iostream.h> minsann!
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Har legat ute på gräsmattan hava dagen idag och studerat C++: klasser, definitioner och deklarationer, klassvariabler och metoder... det fanns en del frågetecken som behövde rätas ut. Så nu kanske det kommer att gå lite lättare att programmera i Qt.

Glad Påsk!
Användarvisningsbild
lgrfbs
Inlägg: 7309
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: QT -nybörjare.

Inlägg av lgrfbs »

jesse tack för denna tråden läser den med intresse då jag började med att rita upp ett GUI för att göra en miniräknare till Nokia E75 som påminnande om den i Nokia 3310, men det rann ut i sanden.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Ja, Qt verkar vara jättekul när man får det att snurra. Jag är helnöjd just nu även om jag fattar att jag har mycket kvar att plugga och lära innan jag får ut det jag vill.

Mitt Serieports-GUI för tillfället:
Urklipp02.jpg
(tiden till klockan , liksom spänningar skickas av en AVR via serieporten och uppdateras en gång per sekund. Samtidigt kan man skriva "kommandon" till AVR i terminalen och få svar i textformat.)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: QT -nybörjare.

Inlägg av jesper »

Det låter som du fått något dårligt exempel på hur man användar QSerialport. Jag har använt den en del, med QConnection som mellansteg så att jag kunde köra både RS-232 och TCP/IP med samma interface. Ska se om jag hittat originalkoden. Det var jätteenkelt att få igång och använda.

Det Qwt review du henvisar till, verkar helt befängt. Kan knappast vara en programmerare som gjort undersökningen.
För det första är Doxygen dokumentation något av det bästa som finns, speciellt för att dokumentera just sånt som t.ex. Qwt. Att det skulle vara svårt att läsa/använda Doxygen dokumentation, är som att påstå det är svårt att browsa på internet.
Dessutom är det alldeles skitsnack, dokumentationen för Qwt är helt integrerat i QTCreator, precis som standarddokumentationen. Det finns också ett hundratals kodexempel inkluderat så att man snabbt kan lära sig hur en klass fungerar.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Qserialport kände jag inte till. Jag har använt Qextserialport, sedan är det någon som gjort ett förenklat skal till denna som heter Serialport. Jag kommer så småningom att göra om det, eftersom bufferten inte går att få längre än 255 bytes ( om man försöker så kraschar programmet), och ibland tar jag emot data i upp till 1000 bytes på raken, som jag då helst vill bearbeta i en och samma char-lista. Kriteriet för att en rad är slut är för mig att jag får in CR+LF, inte att det t.ex. dröjer ett visst antal millisekunder mellan tecknen.

låter ju bra om qwt. Får hoppas att jag kommer att kunna använda det.

Men nu när jag kollar in Qwt User's Guide 6.0.0 så verkar det ju ganska OK med bilder och allt. (länken går till klassen QwtSlider som exempel).

Går det att integrera Qwt-widgetsarna (!) i QT Designer så att man kan använda dem grafiskt, eller måste jag skriva dem direkt i kod?

Jag tycker det är svårt med externa bibliotek också, har inte riktigt lärt mig hur de ska installeras för att Qt Creator (eller någon annan IDE för den delen) ska kunna hitta dem? Har inte installerat Qwt än.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Qwt fanns i Linux som rpm (libqwt5) och då fanns Qwt-widgetarna som grafiska objekt i Qt-Designer. Det var bara att dra och släppa. Men det gick inte att kompilera. Den hittade qwt_plot.h men tydligen inte själva qwt_plot.c:

Kod: Markera allt

ui_mainwindow.h:105: undefined reference to `QwtPlot::QwtPlot(QWidget*)'
Så nånting saknas... :?:

Och i Windows har jag inte försökt installera Qwt än.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: QT -nybörjare.

Inlägg av jesper »

Du måste inkludera de qwt delar du vill använda. Sä här ser det t.ex. ut i min mainwindow header:

Kod: Markera allt

#include <QMainWindow>

/* QWT stuff */
#include <qwt_plot_curve.h>
#include <qwt_plot_grid.h>
#include <qwt_legend.h>
#include <qwt_plot.h>
#include <qwt_scale_draw.h>
#include <qwt_compass.h>
#include <qwt_compass_rose.h>
#include <qwt_dial_needle.h>
Jag hade lite fel om QSerialPort, det är inte en egen klass, utan QSerialPort var namnet på .pri filen och foldern med QExtSerialPort, QManageSerialPort e.t.c. filerna. Posix och Win varianter, så det är nog samma du har.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: QT -nybörjare.

Inlägg av jesse »

Den .h-fil som automatiskt genereras av Qt Designer börjar så här:

Kod: Markera allt

#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QSlider>
#include <QtGui/QStatusBar>
#include <QtGui/QToolBar>
#include <QtGui/QWidget>
#include "qwt_plot.h"

QT_BEGIN_NAMESPACE

class Ui_MainWindow
... osv...
Det finns alltså en #include "qwt_plot.h" där, eftersom jag lagt till det objektet grafiskt. Själv lade jag till ett par till i MainWindow.h:

Kod: Markera allt

#include <qwt_plot.h>
#include <qwt_plot_curve.h>
Men det hjälper inte:
mainwindow.o: In function `Ui_MainWindow::setupUi(QMainWindow*)':
/home/jens/avancerat/Qt/QwtTest-build-desktop/./ui_mainwindow.h:105: undefined reference to `QwtPlot::QwtPlot(QWidget*)'
collect2: ld returnerade avslutningsstatus 1
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Re: QT -nybörjare.

Inlägg av idiotdea »

Är problemet vid länkningen? I så fall måste du antagligen definiera någonstans att länkaren skall inkludera Qwt-biblioteket...
Skriv svar