Gtk tlacitka, pristup k spolocnej triede – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Gtk tlacitka, pristup k spolocnej triede – C / C++ – Fórum – Programujte.comGtk tlacitka, pristup k spolocnej triede – C / C++ – Fórum – Programujte.com

 

Martingt89
~ Anonymní uživatel
8 příspěvků
12. 12. 2008   #1
-
0
-

Zdravim, vrhol som sa do programovania grafickej aplikacie pomocou glade, no ked som chcel vo viacerych tlacidlach pristupovat k 1 triede narazil som na problem, pokial tuto triedu definujem v "main" tlacidla ju nevidia

Poradi mi niekto ako mam "adresovat" tuto triedu?

Ukazka tlacitok:



void window1::on_button1_clicked()
{

}
void window1::on_button2_clicked()
{

}

Nahlásit jako SPAM
IP: 91.127.1.–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2008   #2
-
0
-

v main?? jako

int main(...) {

void window1::on_button1_clicked() {
}
void window1::on_button2_clicked() {
}

...
}


ci co to myslis?

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Martingt89
~ Anonymní uživatel
8 příspěvků
12. 12. 2008   #3
-
0
-

nn to je zvlast subor kde je kod ktory sa vykona pri stlaceni tlacidla...

main



int main(){
trieda *nova = new trieda();
...

Nahlásit jako SPAM
IP: 91.127.1.–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2008   #4
-
0
-

ted uz vuec nechapu

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Martingt89
~ Anonymní uživatel
8 příspěvků
12. 12. 2008   #5
-
0
-

OK takto.
Mam hlavny subor v ktorom sa nachadza:



int main();
trieda *nova = new trieda();
nova->spusteny(1);
atd.

dalej mam dalsi subor v ktorom je


void window1::on_button1_clicked()
{
nova->spusteny(2);
}
void window1::on_button2_clicked()
{
nova->spusteny(3);
}


lenze samozrejme v tejto casti kodu nie je trieda "nova"vytvorena, a pri kompilacii (linux - ubuntu8.10) program hlasi ze nepozna nava a spusteny.

moja otazka teda znie ako mu mam povedat kde je ta trieda vytvorena

Nahlásit jako SPAM
IP: 91.127.1.–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2008   #6
-
0
-

jo takhle ... nepredava se ty metode i trida ktera ji vola? nebo neobsahuje this ?

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Quiark0
Věrný člen
12. 12. 2008   #7
-
0
-

Tak zaprvé, proměnná nova je lokální pro funkci main, mimo ní ji nikdo nezná. Proto musíš třídě window1 předat na ní odkaz, aby s ní mohla pracovat.



int main() {
trida *main = new trida();
window1 *okno = new window1();

window1->m_main = main; // predpoklada se, ze trida window1 bude mit promennou type trida * s nazvem m_main
}

Nahlásit jako SPAM
IP: 193.86.140.–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2008   #8
-
0
-

nebo v horsim pripade ji dat jako globalni ... ale lepsi je to pres ty reference

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Martingt89
~ Anonymní uživatel
8 příspěvků
12. 12. 2008   #9
-
0
-

To Quiark :
Skusil som to ale neujalo sa to :( " error: ‘class window1’ has no member named ‘m_main’"

Urcite je problem v trida * m_main; pretoze som neprisiel na to do ktoreho suboru to mam napisat :D

Pomocou globalnej to funguje :) ale tak som to nechcel :(

Aj tak dakujem za pomoc, ak viete kam to zapisat budem rad :)

Nahlásit jako SPAM
IP: 84.47.54.–
KIIV
~ Moderátor
+43
God of flame
12. 12. 2008   #10
-
0
-

To Martingt89 : tak dej kod jak se ti to nepovedlo...
error cos sem hodil vypada spis jako marnej pokus o toto: window1.m_main = ...


akorat bez nadefinovany promenny public: ... * m_main;

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Quiark0
Věrný člen
12. 12. 2008   #11
-
0
-

Já bych autorovi doporučil, aby si sehnal nějaký výukový materiál pro programování, ať už v C++ nebo v jiném jazyce, ať už tištěnou knihu nebo nějaký článek na internetu. Cesta pokus, omyl, dotaz na fóru není k ničemu, protože by tady někdo musel hodně vysvětlovat, což je zbytečné, protože už to je v těch výukových materiálech.

Tady je pár tipů na nějaké výukové materiály:
http://wiki.ceske-hry.cz/%C3%9Avod_do_programov%C3%A1n%C3%AD_her#Zdroje_v_.C4.8De.C5.A1tin.C4.9B

Nahlásit jako SPAM
IP: 193.86.140.–
Martongt89
~ Anonymní uživatel
1 příspěvek
13. 12. 2008   #12
-
0
-

To Quiark :
Nj asi je to pravda, aj mam doma kihu rozumime c++ ale absolutne jej nerozumiem :D tvari sa ze je objektovo stavana ale uci objekty len z casti pouzivat a nie ich vytvarat spravovat, a k tomu ta kniha sa cely cas zaobera dokola jednym problemom a ked si clovek nepameta vsetky predchadzajuce strany netusi o com sa vravi :D

Dik za vas cas

Nahlásit jako SPAM
IP: 84.47.91.–
KIIV
~ Moderátor
+43
God of flame
13. 12. 2008   #13
-
0
-

je dobry se seznamit s principama oop...
pak teprve se poustet do tohodle...

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Quiark0
Věrný člen
13. 12. 2008   #14
-
0
-

Tak zkus ty materiály o Pythonu na které jsem dával odkaz, třeba to půjde líp.

Nahlásit jako SPAM
IP: 193.86.140.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

GTK+ — založil Zelenáč

Problém s GTK — založil Colpik

Bežiaci text GTK — založil Michal Jurečko

C# GTK Textovy editor — založil Miro1701

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý