Название: Пару вопросов по QTableWidget Отправлено: Stiv от Сентябрь 07, 2011, 19:05 Доброго всем времени суток.
Есть таблица QTableWidget и есть заголовок её столбцов. Когда навожу курсор мыши на границу столбцов то он меняет форму и при двойном нажатии столбец меняет свою ширину в соответствии с надписью которая находится в заголовке таблицы. Вопрос как мне сделать ширину столбцов по названию при создании таблицы(чтоб это не ручками каждый раз делать при запуске программы)? Вопрос второй. В таблицу по приходу данных с внешнего устройства эти данные обрабатываются и показываются в таблице т.е добавляется новая строка. Вопрос а какое максимальное кол-во строк можно отобразить в QTableWidget? Кол-во колонок 12 и в каждой ячейке таблицы отображается бвух байтное число. P.S. И последнее вопрос не в тему ну тем немение. Как сделать так чтоб при отладке программы изменялась и форма? Я имею ввиду то что выполнении строк программы по создании таблицы таблица на форме не появляется. Название: Re: Пару вопросов по QTableWidget Отправлено: Vass от Сентябрь 07, 2011, 20:27 1. Получите header c помощью метода horizontalHeader()
установите режим ресайзинга секций вызвав для хедера метод setResizeMode (QHeaderView::ResizeToContents) 2. Теоретически пока не кончится память, практически, не стоит так делать. 3. Для того чтобы форма появилась в цикле событий должно обработаться событие отрисовки для виджета таблицы. пока вы стоите дебаге на собственном коде - этого не произойдет. Название: Re: Пару вопросов по QTableWidget Отправлено: Stiv от Сентябрь 08, 2011, 08:53 Vass метода setResizeMode для QTableWidget нет. Этот метод есть для объектов класса QHeaderView. И объекты
QHeaderView используются для установки хедеров в QTableView и QTreeView. В труде Макса Шлее того что мне надо не написанно. А можно пример в коде для установки ширины столбцов по названиям для таблицы QTableWidget. Вот тот код который у меня есть: QStringList a; QTableWidgetItem *cell; ui->tableWidget->setColumnCount(3); ui->tableWidget->setRowCount(3); a<<"RTR"<<"DLC"<<"SID"; ui->tableWidget->setHorizontalHeaderLabels(a); ui->tableWidget->horizontalHeader(); Название: Re: Пару вопросов по QTableWidget Отправлено: kambala от Сентябрь 08, 2011, 10:36 class QTableWidget : public QTableView
Название: Re: Пару вопросов по QTableWidget Отправлено: Stiv от Сентябрь 08, 2011, 11:32 Последний пост запутал меня совсем.
Можно пример привести пожалуйста. Название: Re: Пару вопросов по QTableWidget Отправлено: kambala от Сентябрь 08, 2011, 13:11 это означает, что все, что есть в QTableView, есть и в QTableWidget
Название: Re: Пару вопросов по QTableWidget Отправлено: Vass от Сентябрь 08, 2011, 13:59 Vass метода setResizeMode для QTableWidget нет. Этот метод есть для объектов класса QHeaderView. И объекты QHeaderView используются для установки хедеров в QTableView и QTreeView. А внимательно прочитать что я написал? Название: Re: Пару вопросов по QTableWidget Отправлено: Stiv от Сентябрь 08, 2011, 14:52 Цитировать А внимательно прочитать что я написал? Vass прочитал внимательнее что вы написали, вроде что то прояснилось, но не совсем Сказывается плохое знание си++. Хочется ж своей головой дойти, ибо когда покажут код толк от обучения будет 0. Как я понял надо создать объект QHeaderView, получить значения с таблицы и потом вызвать метод setResizeMode (QHeaderView::ResizeToContents). Но первое выполнить не получается. Значит я чего-то недопонимаю. Название: Re: Пару вопросов по QTableWidget Отправлено: kambala от Сентябрь 08, 2011, 15:01 Код
Название: Re: Пару вопросов по QTableWidget Отправлено: Stiv от Сентябрь 08, 2011, 15:06 При написании ответа комп завис, и как я увидел написали ответ.
И я до него сам дошёл ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); Всем спасибо огромное, тема закрыта. |