SIGNAL() och SLOT() är två makros som man inte bör använda längre enligt denna artikelpost här:
https://stackoverflow.com/questions/...m-button-in-qt
Citat:
connect(this, SIGNAL(clicked()), SLOT(this->onClick())); - Please stop using the old macro / string based signal/slot syntax. Use the new pointer-to-member-function based syntax instead. The new way is compile-time checked rather than run-time checked, is faster and you can connect to anything (so you don't need to mark functions as slots any more). Forget about SIGNAL() and SLOT() already.
Makron skippar nämligen alltid parameterkontrollen och typkontrollen vid kompilering och efterföljande runtime körning - och kan därför ge mycket oväntade resultat.
Du förefaller att använda för gamla och föråldrade testexempel.
Och försök leta efter lite nyare.
En nackdel med att använda funktioner som parametrar i ett annat funktionsanrop är att parameterfunktionen måste följa en viss fast template (= mall).
Viktigt brukar vara att hålla reda på om test() ska stå så här;
void test();
eller
bool test();
eller tex
int test();
Buttonclick funktioner brukar vara bool, men i äldre kodkokböcker kan de vara int
istället. Det finns också tex de fördefinierade värdena typ
BUTTON_DOUBLECLICK, BUTTON_DOWN och BUTTON_UP i många grafiska bibliotek.
Man måste i en del applikationer också bestämma från programmets start om
knappen ska vara uppe eller nere från början.
För övrigt vet jag inte vad du vill åstadkomma med din kod.
Den ser ofullständig ut.
Så om du kunde utveckla lite mera vad som avses så är det säkert någon annan här som
kan utveckla tråden bättre.
Själv är jag rätt dålig på vissa sådana här grafiska bibliotek.
Men det finns ju en del matnyttigt på Qts hemsida här:
https://doc.qt.io/qt-5/overviews-main.html
Bara att Googla och leta efter bra tutorials där och på flera andra sajter.
Kolla också datumstämpeln så att du ser att du inte hittar gammal skåpmat
som inte duger för dagens kokböcker för Qt-kod.
När man söker på Linux-relaterade sidor så kan man också råka hitta hopplöst föråldrade
tricks som knappast används idag.
Det kan ge oönskade sidoeffekter på det viset att ett jobb med lite kodning i kan ta flera timmar
av onödigt letande. Och arbetstid är dyrbart idag.
NB: I äldre C-kod, så är SIGNAL vanligtvis lowercase signal som menas,
och är en interrupthanterare som startar ett viss funktion när en signal,
tex SIG_INT sänds till din app eller ditt program.
Den typen av kod skrevs på den gamla goda DOS 6.22-tiden.
Idag är den föråldrad men finns fortfarande kvar i tex drivers och systemkritiska processer.
I de flesta OS alltså...