Russian Qt Forum

Qt => Общие вопросы => Тема начата: Trademaster от Сентябрь 08, 2013, 22:57



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


Всем заранее большое спасибо за помощь.


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

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


Название: Re: Сохранение данных таблицы.
Отправлено: Trademaster от Сентябрь 09, 2013, 07:37
Про базу данных спасибо ,поработаю над этим вечером.
А по поводу того ,что код правильный - нет. очистил и пересобрал ,не помогло. Проблема в том ,что как я уже говорил ,в ячейку всунут виджет ,QTextEdit и видимо когда я кликаю на него ,то сигнал ,что я кликаю на строку таблицы попросту не передается. Вот и не знаю ,что с этим делать :( Для выделения строки приходится тыкать на ее левый край (где ее нумерация) или на тонкие линии между ячейками.


Название: Re: Сохранение данных таблицы.
Отправлено: gil9red от Сентябрь 09, 2013, 07:38
Может, вместо вставки виджета в ячейку, поместите делегат? =)


Название: Re: Сохранение данных таблицы.
Отправлено: popper от Сентябрь 09, 2013, 09:43
На третий вопрос рекомендую переопределить QWidget::resizeEvent


Название: Re: Сохранение данных таблицы.
Отправлено: Trademaster от Сентябрь 09, 2013, 21:02
Про базу данных спасибо ,поработаю над этим вечером.
А по поводу того ,что код правильный - нет. очистил и пересобрал ,не помогло. Проблема в том ,что как я уже говорил ,в ячейку всунут виджет ,QTextEdit и видимо когда я кликаю на него ,то сигнал ,что я кликаю на строку таблицы попросту не передается. Вот и не знаю ,что с этим делать :( Для выделения строки приходится тыкать на ее левый край (где ее нумерация) или на тонкие линии между ячейками.

А как мне получить значение из QTextEdit ,который находится в одной из ячеек QTableWidget???


Название: Re: Сохранение данных таблицы.
Отправлено: gil9red от Сентябрь 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));


Название: Re: Сохранение данных таблицы.
Отправлено: Trademaster от Сентябрь 10, 2013, 21:57
Все ,разобрался ,спс :)