Qt Forum.

Qt Forum.

Tilpasset Signal & # x2F; Slot Implementering for en QPushButton.

Jeg forsoker a implementere en signal / slotsforbindelse som ma passere en parameter til sporet. Fra alt jeg har lest, trenger jeg a «overbelaste» signalet med parameteren slik at den kan sendes til sporet.

I et forsok pa a oppna dette, opprettet jeg denne klassen (avledet fra QPushButton):

klasse StrainButton: offentlig QPushButton.

& # 123; / BEGIN KLASS STRAINBUTTON ERKL RING /

& # 125 ;; / CLOSE CLASS STRAINBUTTON ERKL RING /

Her er implementeringsfilen:

StrainButton :: StrainButton (QString ButtonText, int ButtonID, QWidget * Foreldre): QPushButton (Parent)

& # 123; / BEGIN STRAINBUTTON DEFAULT CLASS CONSTRUCTOR DEFINITION /

Koble til (dette, SIGNAL (klikket ()), dette, SLOT (triggerOutput ()));

& # 125; / BEGIN STRAINBUTTON () DEFAULT CLASS CONSTRUCTOR DEFINITION /

I utgangspunktet var min hensikt a pakalle triggerOutput () nar klikket () utloses, noe som igjen ville gi utgang (int). Jeg kunne da bruke utgangssignalet (int) til a ringe til sporet som krevde int-parameteren.

Her er signal / spor-samtalen for a oppna det ovennevnte:

StrainButton * ViewRawData = ny StrainButton (tr («Data Summary»), StrainID, dette);

Koble til (ViewRawData, SIGNAL (output (StrainID)), dette, SLOT (InvokeRawDataTable (StrainID)));

Kan noen gi meg en ide om hvor feilen min er? Det eneste stedet jeg kan tenke pa er koble samtalen i konstruktoren, men jeg ser ikke hvordan det ville v re et problem.

Dette er meldingen jeg mottar fra QT Creator nar knappene vises pa skjermen:

Objekt :: Koble til: Ingen slikt signal StrainButton :: output (StrainID) i .. \ VCCalculator \ source_files \ vctablayouts.cpp: 481.

Hvis jeg bruker «autofullfor» i QT Creator, viser det utgang (int) som et signal nar jeg skriver SIGNAL (

Takk pa forhand for din hjelp!

Vennligst se bort fra, jeg skjonte det ut.

Jeg trengte a ringe slik:

Koble til (ViewRawData, SIGNAL (output (int)), dette, SLOT (InvokeRawDataTable (int)));

Sporsmal: Hvordan definerer jeg hva verdien av int-parameteren er?

Se bort fra igjen. Jeg antar at det er utgivelseserkl ringen som bestemmer det:

avgir utgang (StrainID);

Mods, v r sa snill a flytte dette hvis du trenger det. Enda bedre, er det en link du kan legge ved som forklarer hvordan du gjor dette? Jeg er sikker pa at jeg ikke er den eneste personen som ikke helt fange hvordan dette virker ..

[sitat forfatter = «mchris357» dato = «1305252627»] Enda bedre, er det en link du kan legge ved som forklarer hvordan du gjor dette?

Du kan finne disse linkene nyttige:

Se QSignalMapper for en losning.

En annen losning er maten du viser i den siste kodestykket. Bare erkl r signalet i underklassen, og avgir det med verdien du trenger. Hvilken verdi det er, bare du vet. Kanskje har du lagt til en eiendom i din underklasse som inneholder den verdien?

@kobling (ViewRawData, SIGNAL (output (StrainID)), dette, SLOT (InvokeRawDataTable (StrainID)); @ @

er feil. Den korrekte formen er:

@kobling (ViewRawData, SIGNAL (output (int)), dette, SLOT (InvokeRawDataTable (int))); @

Du sender og mottar en datatype ved hjelp av Signal Slot, ikke variabelenavnet.

iOS & amp; Qt-utvikler.

Ser ut som din forbindelse til Qt Forum var tapt, vent mens vi forsoker a koble til igjen.


Comments are closed.

Hallo! Vil du spille i det mest populære kasinoet? Vi samlet det for deg. Gå her nå!