[gelöst] markierung der maus bekommen

Alles rund um die Programmierung mit Qt
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

[gelöst] markierung der maus bekommen

Beitrag von rulzmaker »

Wenn z.B. die Maus in einem x-beliebigen Fenster Zeichen markiert (mit gedrückter Maustast und dann ziehen + loslassen) bietet qt dazu auch eine Möglichkeit die markierten Wörter zu bekommen?
Debian 2.4.27-1-386
[...]peace, love and empathy
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Z.B. aus einem TextEdit? oder ein spezielles Widget?

http://doc.trolltech.com/3.3/qtextedit. ... dText-prop
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag von rulzmaker »

Ich meine z.B. wennich im Konquere Browser etwas markiere, dass ich diesen markierten Textabschnitt in mein Programm verarbeiten kann.
Debian 2.4.27-1-386
[...]peace, love and empathy
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Über QClipboard oder dcop.
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag von rulzmaker »

Code: Alles auswählen

#include <clipboard.h>
....
QClipboard *cb = QApplication::clipboard();

    // Copy text from the clipboard (paste)
    QString text = cb->text(QClipboard::Clipboard);
    if ( !text.isNull() )
        qDebug( "The clipboard contains: " + text );

    // Copy text into the clipboard
    cb->setText( "This text can be pasted by other programs",
                 QClipboard::Clipboard );
main.cpp: In function `int main(int, char**)':
main.cpp:47: error: incomplete type `QClipboard' does not have member `
Clipboard'
main.cpp:47: error: `text' undeclared (first use this function)
main.cpp:47: error: (Each undeclared identifier is reported only once for each
function it appears in.)
main.cpp:53: error: incomplete type `QClipboard' does not have member `
Clipboard'
main.cpp:53: error: `setText' undeclared (first use this function)
make[2]: Leaving directory `/home/toni/programmierung_m/qtclipboard/clipboard'
Debian 2.4.27-1-386
[...]peace, love and empathy
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

#include <qclipboard.h>

und dann denke ich mal sind die Fehler weg.
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag von rulzmaker »

Jip, hast Recht. Was ist dcop?
Debian 2.4.27-1-386
[...]peace, love and empathy
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

DCOP ist das Desktop Communication Protocoll von KDE3. Da kannst du vielleicht solche Informationen besser/einfacher heraus bekommen. Es ist immer problematisch zwischen Anwendungen zu arbeiten, die nicht auf eine gemeinsame API zugreifen.
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag von rulzmaker »

Kommt eher nicht für mich in Frage. Das Programm sollte auch unter Windows laufen.

Mal was anderes: Kann man auch Events (wenn Knopf im eigenen Programm gedrückt wurde) abfangen ohne den QT-Designer zu benutzen? - ich finde dazu nämlich kein passendes Beispiel in der Dokumentation.
Debian 2.4.27-1-386
[...]peace, love and empathy
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

pressKeyEvent muss dafür überlagert werden.
rulzmaker
Beiträge: 70
Registriert: 19. Juli 2005 23:00
Kontaktdaten:

Beitrag von rulzmaker »

Uff, hast du dafür ein kurzes Beispiel ? :oops:
Debian 2.4.27-1-386
[...]peace, love and empathy
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag von pm_Snake »

such einfach mal nach "keyPressEvent" in den Qt-Beispielen. Dort müsste eigentlich was dabei sein.
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Definition:

Code: Alles auswählen

class MyClass : public QWidget {

public:
  MyClass( QWidget *parent );
  ~MyClass();

protected:
  void pressKeyEvent( QKeyEvent *event );
};
Source:

Code: Alles auswählen

void MyClass::pressKeyEvent( QKeyEvent *event ) {

  if ( event -> key() == Qt::Key_F1 )
    qDebug( "F1 wurde gedrückt" );
  QWidget::pressKeyEvent( event );
}
Ergänzende Zeilen musst dir halt denken.
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag von pm_Snake »

Bei mir in der Doku steht aber keyPressEvent() :lol:
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Dann nimm das.
Antworten