Поместить текст в буфер обмена не работает

Модератор: Модераторы разделов

bdimych
Сообщения: 46

Поместить текст в буфер обмена не работает

Сообщение bdimych »

mops linux 5 = slackware 11
qt 3.3.6

main.cpp

Код: Выделить всё

#include <qapplication.h>
#include <qclipboard.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );
    qDebug(QApplication::clipboard()->text()); // работает
    QApplication::clipboard()->setText("aaa"); // не вставляет а очищает буфер т.е. если там что то было то после выполнения вставка не вставит ни "aaa" ни того что там было
    return 0;
}

компиляция qmake -project; qmake; make

???
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Поместить текст в буфер обмена не работает

Сообщение Skull »

При завершении работы приложения X11 данные, которые были помещены им в буфер, стираются. Косвенно это сказано в документации по QClipboard. Это архитектурное ограничение X11.
Skull
Спасибо сказали:
bdimych
Сообщения: 46

Re: Поместить текст в буфер обмена не работает

Сообщение bdimych »

спасибо
Спасибо сказали:
bdimych
Сообщения: 46

Re: Поместить текст в буфер обмена не работает

Сообщение bdimych »

похоже все равно что то не так - если заменить return 0 на return a.exec() то буфер так же очищается - непонятно...
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: Поместить текст в буфер обмена не работает

Сообщение vadiml »

я использовал так (для обоих типов буфера):

Код: Выделить всё

...
if ( sel ) {
    cb->setText(s, QClipboard::Selection);
}
else {
    cb->setText(s, QClipboard::Clipboard);
}
....
if ( sel ) {
    s = cb->text(QClipboard::Selection);
}
else {
    s = cb->text(QClipboard::Clipboard);
}
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали: