Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QClipboard 
V
    Опции темы
zss
Дата 23.4.2009, 11:51 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



что-то ни хрена не пашет
Код

 QClipboard *clipboard = QApplication::clipboard();
 QString originalText = clipboard->text();
 ...
 clipboard->setText(newText);


новое значение не выставляется. А если попытать прочитать, то остается старое, вставленное из Windows
PM MAIL ICQ   Вверх
Acer
Дата 23.4.2009, 13:12 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: 15
Всего: 8



Вот так работает. В твоем случае не инициализируется буффер обмена для твоего приложения
Код

#include <QtGui/QApplication>
#include <QtGui/QClipboard>

int main(int argc, char *argv[]){
    QApplication app( argc, argv );

    QClipboard *cb = app.clipboard();
    cb->setText( "simple string" );

    return 0;
}

PM MAIL   Вверх
SABROG
Дата 23.4.2009, 13:14 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



А у меня всё работает:

Код

#include <QtCore/QtGlobal>
#include <QtCore/QtDebug>
#include <QtGui/QApplication>
#include <QtGui/QClipboard>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QClipboard *clipboard = QApplication::clipboard();
    QDebug d(QtDebugMsg);
    d << clipboard->text();
    clipboard->setText(QLatin1String("this a new text"));
    d << clipboard->text();
    return 0;
}




--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 23.4.2009, 13:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(Acer @  23.4.2009,  13:12 Найти цитируемый пост)
В твоем случае не инициализируется буффер обмена для твоего приложения

что значит не инициализируется ? Он создается при создании приложения, а значет должен инициализироваться




Цитата(SABROG @  23.4.2009,  13:14 Найти цитируемый пост)
#include <QtCore/QtGlobal>
#include <QtCore/QtDebug>
#include <QtGui/QApplication>
#include <QtGui/QClipboard>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QClipboard *clipboard = QApplication::clipboard();
    QDebug d(QtDebugMsg);
    d << clipboard->text();
    clipboard->setText(QLatin1String("this a new text"));
    d << clipboard->text();
    return 0;
}


странно - у меня тоже отработал. А почему же не в main не работает
PM MAIL ICQ   Вверх
SABROG
Дата 23.4.2009, 13:32 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



QApplication должен предшествовать всему прочему.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 23.4.2009, 16:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(SABROG @  23.4.2009,  13:32 Найти цитируемый пост)
QApplication должен предшествовать всему прочему. 

ну так и и есть

main.cpp
Код

        QApplication app (argc, argv);
        Q_INIT_RESOURCE(mylib);
        QApplication::setStyle(new QCleanlooksStyle());
        QTextCodec* codec = QTextCodec::codecForName("CP1251");
        QTextCodec::setCodecForTr (codec);

        MainForm form;
        form.showMaximized();
        app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
        return app.exec();


PM MAIL ICQ   Вверх
zss
Дата 27.4.2009, 13:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



ну в общем голову сломал, а как его победить - не понятно :(
PM MAIL ICQ   Вверх
SABROG
Дата 27.4.2009, 13:40 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Ну ты же не выкладываешь полный компилируемый проект, как тебе помочь не понятно.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 27.4.2009, 20:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(SABROG @  27.4.2009,  13:40 Найти цитируемый пост)
Ну ты же не выкладываешь полный компилируемый проект, как тебе помочь не понятно. 

пытался создать тестовый проект - все работает.
А мой проект просто очень большой и эмитировать его не удается. Поэтому и не знаю куда копать :(
PM MAIL ICQ   Вверх
SABROG
Дата 27.4.2009, 21:01 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Ну попробуй пихать работу с буффером в разные места программы. Варьировать варианты текста - английский/русский/уникод/не уникод. В главном потоке, в дочернем потоке (если таковые имеются). Включить отладку, смотреть в консоль, может ошибки пишутся какие. Запускать на разных компьютерах. Пробовать разные версии Qt. Разные сборки. Разные компиляторы. Пробуй удалять независимые куски кода до тех пор, пока не локализуешь место из-за которого программа не работает.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 28.4.2009, 09:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(SABROG @  27.4.2009,  21:01 Найти цитируемый пост)
Ну попробуй пихать работу с буффером в разные места программы. Варьировать варианты текста - английский/русский/уникод/не уникод. В главном потоке, в дочернем потоке (если таковые имеются). Включить отладку, смотреть в консоль, может ошибки пишутся какие. Запускать на разных компьютерах. Пробовать разные версии Qt. Разные сборки. Разные компиляторы. Пробуй удалять независимые куски кода до тех пор, пока не локализуешь место из-за которого программа не работает. 

так весь прикол в том, что он уже в main не работает smile

Код

        QApplication app (argc, argv);

        QClipboard* clipboard = QApplication::clipboard();
        clipboard->setText ("xxx");


может какие настройки проекта? Да они не должны влиять на это...
PM MAIL ICQ   Вверх
SABROG
Дата 28.4.2009, 12:41 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Может он уже затирается до того момента, где ты его начинаешь использовать?


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 28.4.2009, 12:46 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(SABROG @  28.4.2009,  12:41 Найти цитируемый пост)
Может он уже затирается до того момента, где ты его начинаешь использовать? 

каким образом ? я поставил бряк сразу за работой с clipboard - нифига. Блин - чудеса какие-то...
PM MAIL ICQ   Вверх
SABROG
Дата 28.4.2009, 12:57 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Попробуй его использовать после app.exec, может какая-то завязка на eventloop есть.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zss
Дата 28.4.2009, 15:14 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(SABROG @  28.4.2009,  12:57 Найти цитируемый пост)
Попробуй его использовать после app.exec, может какая-то завязка на eventloop есть. 

попробовал - нифига
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.