Hogyan tudok menüből triggerelni egy másik osztályban lévő metódust?
Van egy Qt program, ami a következőképpen épül fel:
- QMainWindow (.h, .cpp, .ui)
- Tablazat (.h, .cpp, .ui), benne egy ujSor() metódus
A QMainWindow.ui-ban létre van hozva egy menübar, benne egy "új sor hozzáadása" menüponttal.
Szeretném, hogy ha erre a menüpontra rákattintva a Tablazat.ui-ban lévő tableWidget-ben létrehozásra kerülne egy új sor.
Ami nem értek, hogy hogyan tudnám lefuttatni a menüpontra való kattintással az ujSor() metódust a Tablazat osztályban? Programkódból nem érem a Tablazat osztály elemeit, így nem is tudom hozzárendelni a menüpont triggered() akciójához.
Oké, anélkül, hogy behánynám a több száz sornyi kódot, kiragadva a problémámat belőle.
Hogyan érem el a mainwindows.cpp-ből a tablazat.cpp-ben lévő ujSor()-t a menübar egy adott menüpontjára kattintva?
Nekem ez a signal-slot kínai, hiába nézem a példakódokat. A példakódok, amiket találok, azok mind adott osztályon belüli signalokra adnak példát, de nem különböző osztályok közöttre, ahogy nálam van.
Fogalmam sincs. A tableWidget a grafikus szerkesztőn be van húzva a tablazat.ui-ra és a program indításakor automatikusan legenerálja magának.
Ha létrehozok egy példányt a Tablazat osztályból a mainwindow.cpp-ben, akkor le tudom futtatni az ujSor()-t, de annak semmilyen hatása nincsen. Gondolom azért, mert ez egy másik példány valahol a "háttérben", nem pedig az, amit a program az indításkor létrehoz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!