Qt Designerilla voi piirtää ikkunat, ja määritellä koodi käsittelemään niiden tapahtumia. Jostain syystä tapahtumia eli signaaleita on rajoitettu. Olisi tarve käsitellä tapahtuma, jossa käyttäjä klikkaa TextEditissä tekstiä, mutta Designerin Go to slot -valikosta sellaista tapahtumaa ei löydy. Class Referencen mukaan sellainen Qt:stä kuitenkin löytyy TextEditille, jopa kaksoisklikkaukselle erikseen.
Tietääkö joku mitä pitäisi tehdä jos haluaa tunnistaa klikkauksen.
Varmaan tajuat idean ilman sen kummempia selittelyjä..
http://warmi.net/docs/qt_4.6.3/html/designer-creating-mainwindows.html
jimi-kimi kirjoitti:
Varmaan tajuat idean ilman sen kummempia selittelyjä..
http://warmi.net/docs/qt_4.6.3/html/designer-creating-mainwindows.html
Eipä tuo sivu paljoa auta...
Otsikko ei tee järkeä. Eventit eivät ole slotteja tai signaaleita. Ne ovat kaksi eri konseptia.
1. Eventit ovat protected-funktioita, joita kutsutaan automaattisesti tietyn tapahtuman yhteydessä. Niitä ei voi muokata kuin subclassaamalla kyseisen luokan / widgetin.
2. Signaalit ovat jokseenkin kuten eventit, mutta niitä voidaan kuunnella myös luokan ulkopuolelta. Signaali ei itsessään tee yhtään mitään, vaan se pitää ensin yhdistää johonkin slot-funktioon. QTextEdit-luokan ainoa tekstin valitsemiseen liittyvä signaali on selectionChanged().
Eventtejäkin voidaan itse asiassa käsitellä toisessa oliossa event filterin avulla, mutta en nyt selitä siitä, koska luulen että tekisit väärin, jos lähtisit käyttämään sitä tässä tapauksessa.
Jimi-kimi: Qt:n irc-kanavallakin kielletään googlettamasta dokumentaatioita. Käytä Qt:n virallisia dokkareita @ http://doc.qt.nokia.com/latest/. Usein käy niin, että ihmiset vahingossa katsovat liian vanhan version käyttöohjeita ja joutuvat siksi uusiin ongelmiin.
The Alchemist kirjoitti:
1. Eventit ovat protected-funktioita, joita kutsutaan automaattisesti tietyn tapahtuman yhteydessä. Niitä ei voi muokata kuin subclassaamalla kyseisen luokan / widgetin.
Siis eventtejä kutsutaan tapahtumien yhteydessä? Minähän puhuin tapahtumista ja sinä annat ymmärtää että eventti ja tapahtuma on eri...?
No joka tapauksessa minun oli tarkoitus tehdä yksinkertainen linkki editoitavaan teksiin. Olisinhan voinut sen sanoa. Vaikeaa on ajatella yhtä aikaa ruohonjuuritasolla (signaalit) ja korkeampien käsitteiden (valmiit ohjelmistokomponentit) tasolla.
Taitaa siis olla järkevintä käyttää QTextBrowseria, jossa linkin klikkaaminen on tavanomaisempi tapahtuma.
En ymmärtänyt tuosta viestistäsi juuri mitään. Väitit eventtejä signaaleiksi ja minä korjasin, että ne ovat kaksi eri asiaa. Viestissäni käytin termiä "event" kuvaamaan event-funktioita (mouseClickEvent, mouseMoveEvent, ...) ja "tapahtumalla" tarkoitin fyysistä toimintoa kuten hiiren klikkaus tai kursorin liikkuminen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.