Название: копировать в буфер Отправлено: almareta от Сентябрь 10, 2010, 10:12 Имеется таблица из БД, выведена в форму.
Нужно реализовать следующее: Выделяешь строку нужную, нажимаешь на кнопку(или f2), строка копируется в буфер обмена. Для удобства есть вылезающая форма, она указывает на то, что строка скопирована...или впринципе и без этого можно обойтись, просто отобразив в статус баре то же самое("строка скопирована"). Мысли и идеи приветствуются, возможно уже есть какие-то решения, на форуме не нашла.Заранее спасибо Название: Re: копировать в буфер Отправлено: Sancho_s_rancho от Сентябрь 10, 2010, 10:35 Имеется таблица из БД, выведена в форму. А что не так с QClipboard?Нужно реализовать следующее: Выделяешь строку нужную, нажимаешь на кнопку(или f2), строка копируется в буфер обмена. Для удобства есть вылезающая форма, она указывает на то, что строка скопирована...или впринципе и без этого можно обойтись, просто отобразив в статус баре то же самое("строка скопирована"). Мысли и идеи приветствуются, возможно уже есть какие-то решения, на форуме не нашла.Заранее спасибо Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 10, 2010, 10:56 на него нашла только пример
Код: #include <qapplication.h> только без описания Название: Re: копировать в буфер Отправлено: noirhor от Сентябрь 10, 2010, 16:54 QApplication::clipboard()->text(); QApplication::clipboard()->setText("aaa"); Ну вот. Первое возвращает текст из буфера, второе заносит в буфер. Создаете слот, например: Код: public slots: Потом коннектимся: Код: <Ваша кнопка> -> setShortcut(Qt::Key_F2); или без кнопки: Код: QAction *action = new QAction(0); Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 08:14 Спасибо буду пробовать, но чувствую вопросов будет много ))
Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 08:22 Цитировать QString str = <Ваша строка>; как определить, что строка выделена? Название: Re: копировать в буфер Отправлено: Karl-Philipp от Сентябрь 13, 2010, 08:38 Цитировать QString str = <Ваша строка>; как определить, что строка выделена? Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 08:47 Цитировать QString str = <Ваша строка>; как определить, что строка выделена? можно спросить, для каких целей, что я буду там отображать? ) Название: Re: копировать в буфер Отправлено: Karl-Philipp от Сентябрь 13, 2010, 09:31 Цитировать QString str = <Ваша строка>; как определить, что строка выделена? можно спросить, для каких целей, что я буду там отображать? ) Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 09:38 Цитировать QString str = <Ваша строка> <Ваша строчка> сюда как я понимаю надо записывать выделенную строку моей таблицы, так как программа будет определять выделена строка или нет? Название: Re: копировать в буфер Отправлено: Karl-Philipp от Сентябрь 13, 2010, 10:12 Цитировать QString str = <Ваша строка> <Ваша строчка> сюда как я понимаю надо записывать выделенную строку моей таблицы, так как программа будет определять выделена строка или нет? 1) получаем текущий индекс: Цитировать QModelIndex QAbstractItemView::currentIndex () const 2) узнаем номер строчки:Цитировать int QModelIndex::row () const Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 10:41 мне вот даже интересно, как это собрать воедино ))
Код:
так я понимаю? Название: Re: копировать в буфер Отправлено: Kolobok от Сентябрь 13, 2010, 11:10 Код: QModelIndex current = view->currentIndex(); Каждый раз создавать QStatusBar не нужно. И желательно прочитать раздел Model/View programming. Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 12:05 Код: QModelIndex current = view->currentIndex(); Каждый раз создавать QStatusBar не нужно. И желательно прочитать раздел Model/View programming. ...но на него он ругается и не только на него... /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:13: error: ‘view’ was not declared in this scope /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:14: error: ‘index’ does not have class type /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:16: error: ‘index’ does not have class type /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:18: error: ‘statusBar’ was not declared in this scope /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:13: warning: unused variable ‘current’ Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 12:30 И можно ссылку на Model/View programming пожалуйста...
Название: Re: копировать в буфер Отправлено: merke от Сентябрь 13, 2010, 12:59 Инклуды:
#include <QModelIndex> #include <QStatusBar> /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:13: error: ‘view’ was not declared in this scope Это Ваш виджет-таблица, он у Вас может иначе называться!!! /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:14: error: ‘index’ does not have class type /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:16: error: ‘index’ does not have class type Вместо index.data() воткните current.data() /home/gorans/QTProjects/bankcards_10_09/task_filter.cpp:13: warning: unused variable ‘current’ Вместо index.data() воткните current.data() Соединяем воедино: Код: QAction *action = new QAction(0); Название: Re: копировать в буфер Отправлено: merke от Сентябрь 13, 2010, 13:00 http://doc.qt.nokia.com/4.3/model-view-programming.html
Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 14:26 Дело в том, что переделывать чужой код крайне сложно...буду пытаться
Название: Re: копировать в буфер Отправлено: merke от Сентябрь 13, 2010, 14:40 Пардон за флуд!!! Alma Asenova это Вы?
Название: Re: копировать в буфер Отправлено: Kolobok от Сентябрь 13, 2010, 14:56 Опечатался, sorry.
Код: QModelIndex current = view->currentIndex(); statusBar() принадлежит обьекту QMainWindow. Обычно это главное окно приложения. Название: Re: копировать в буфер Отправлено: almareta от Сентябрь 13, 2010, 15:13 Александр, нет не я.
|