Ik heb hem nu voor het grootste gedeelte werkend wat ik ermee wil.met dank aan de grote FOX-fan

Eventuele andere toetsen kan ik afvangen zoals ik wil,
behalve de enter-toets!
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| void QtKbdTest::keyPressEvent(QKeyEvent* e)
{
QString s (e->text());
bool handled(false);
int key(e->key());
// dit lijkt niks te doen, moet ik toch op een andere manier kijken
// of ik een speciaal teken te pakken heb. s is nooit Null kennelijk
//isEmpty() ga ik morgen proberen
// het idee lijkt me duidelijk
if (s.isBlank() == TRUE)
{
switch (e->key())
{
case Qt::Key_Tab:
s = "\t";
break;
case Qt::Key_Enter:
case Qt::Key_Return:
logtextedit->append("enter ");
handled = TRUE;
break;
case Qt::Key_Escape:
s = "escape ";
break;
default:
qt_main::keyPressEvent(e);
handled = TRUE;
}
}
if (handled == FALSE)
{
int paragraphs (logtextedit->paragraphs());
int chars (logtextedit->paragraphLength(paragraphs-1));
logtextedit->insertAt(s, paragraphs-1, chars);
}
} |
Het gekke is nu dat ik in debugger helemaal niet in deze functie terecht kom. Ik zal morgen uitzoeken hoe dat komt, nu vind ik het wel weer laat genoeg. Voor degenen die het willen gebruiken om hyperterminal te maken: even wachten, na de kerstvakantie is hij af

kan je hem zelf uitbreiden voor telnet
to be continued...
edit:
enter had al een signal: keyReturn(). Deze vangt ook andere dingen af, zoals alt-toets indrukken. Dat moet je dus filteren, als je hiermee signals gaat maken.
Ook heeft bovenstaande code het nadeel dat ik van het venster de toetsaanslagen heb afgevangen. Ik heb nu zelf een widget gemaakt die overerft van QTextEdit. Wil je die hebben, stuur maar een mailtje

[
Voor 21% gewijzigd door
MBV op 09-10-2004 11:36
]