Russian Qt Forum
Сентябрь 30, 2024, 06:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сохранение данных таблицы.  (Прочитано 3738 раз)
Trademaster
Гость
« : Сентябрь 08, 2013, 22:57 »

Ребят ,есть таблица. В ней в каждой ячейке QTextEdit. Нужно сделать так ,что бы при закрытии программы все ,что в каждой ячейке есть (текст) сохранялось и при следующем запуске программы - отображалось. Как это реализовать?
Еще вопрос. В каждой ячейке QTextEdit , нужно сделать так ,что бы строка QTableWidget выделялась при нажатии на любую из столбцов этой строки. Т.е при нажатии на ячейку ,выделяется соответствующая строка. Реализация этого тоже не ясна :
tbl->setSelectionBehavior(QAbstractItemView::SelectRows);
tbl->setSelectionMode(QAbstractItemView::SingleSelection);
не помогает.
И нужно сделать так ,что бы окно "подгонялось" под размер таблицы. Т.е ,мне нужно ,что бы при запуске программы ,окно отрисовывалось такое ,что бы таблица четко в него входила ,без скролов . И если я окно уменьшаю \ увеличиваю ,с таблицой должно происходить тоже самое.


Всем заранее большое спасибо за помощь.
« Последнее редактирование: Сентябрь 08, 2013, 23:01 от Trademaster » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Сентябрь 09, 2013, 05:56 »

Цитировать
Ребят ,есть таблица. В ней в каждой ячейке QTextEdit. Нужно сделать так ,что бы при закрытии программы все ,что в каждой ячейке есть (текст) сохранялось и при следующем запуске программы - отображалось. Как это реализовать?
Сохраняйте и грузите из БД. SQLite, например Улыбающийся

Цитировать
Еще вопрос. В каждой ячейке QTextEdit , нужно сделать так ,что бы строка QTableWidget выделялась при нажатии на любую из столбцов этой строки. Т.е при нажатии на ячейку ,выделяется соответствующая строка. Реализация этого тоже не ясна :
tbl->setSelectionBehavior(QAbstractItemView::SelectRows);
tbl->setSelectionMode(QAbstractItemView::SingleSelection);
не помогает.
Очистите проект и пересоберите. Код, описанный вами абсолютно правильный Улыбающийся
« Последнее редактирование: Сентябрь 09, 2013, 06:05 от gil9red » Записан

Trademaster
Гость
« Ответ #2 : Сентябрь 09, 2013, 07:37 »

Про базу данных спасибо ,поработаю над этим вечером.
А по поводу того ,что код правильный - нет. очистил и пересобрал ,не помогло. Проблема в том ,что как я уже говорил ,в ячейку всунут виджет ,QTextEdit и видимо когда я кликаю на него ,то сигнал ,что я кликаю на строку таблицы попросту не передается. Вот и не знаю ,что с этим делать Грустный Для выделения строки приходится тыкать на ее левый край (где ее нумерация) или на тонкие линии между ячейками.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Сентябрь 09, 2013, 07:38 »

Может, вместо вставки виджета в ячейку, поместите делегат? =)
Записан

popper
Гость
« Ответ #4 : Сентябрь 09, 2013, 09:43 »

На третий вопрос рекомендую переопределить QWidget::resizeEvent
Записан
Trademaster
Гость
« Ответ #5 : Сентябрь 09, 2013, 21:02 »

Про базу данных спасибо ,поработаю над этим вечером.
А по поводу того ,что код правильный - нет. очистил и пересобрал ,не помогло. Проблема в том ,что как я уже говорил ,в ячейку всунут виджет ,QTextEdit и видимо когда я кликаю на него ,то сигнал ,что я кликаю на строку таблицы попросту не передается. Вот и не знаю ,что с этим делать Грустный Для выделения строки приходится тыкать на ее левый край (где ее нумерация) или на тонкие линии между ячейками.

А как мне получить значение из QTextEdit ,который находится в одной из ячеек QTableWidget???
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Сентябрь 09, 2013, 21:32 »

Стопудов через  Улыбающийся:
Код:
QWidget  *QTableWidget cellWidget (int row, int column)

Вот:
Код:
int row = 0;
int column = 0;
QTextEdit *cellTextEdit = static_cast <QTextEdit *> (tbl->cellWidget (row, column));
Записан

Trademaster
Гость
« Ответ #7 : Сентябрь 10, 2013, 21:57 »

Все ,разобрался ,спс Улыбающийся
« Последнее редактирование: Сентябрь 10, 2013, 22:22 от Trademaster » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.097 секунд. Запросов: 23.