Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как перехватить событие QTableView::columnResized ? / 7 сообщений из 7, страница 1 из 1
07.09.2013, 21:31
    #38390126
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
Заранее приношу извинения за профанские вопросы (изучаю с++).

Пытаюсь создать свой виджет из QTableView. Есть необходимость выполнять какие-либо действия при изменении ширины колонок.
Некоторые фрагменты кода создания класса:

В заголовочнике MyQTableView.h

class MyTableView : public QTableView
.
.
protected slots:
void columnResized(int column, int oldWidth, int newWidth);
.
.


В исходнике MyQTableView.cpp

.
.
.

void MyQTableView::columnResized(int column, int oldWidth, int newWidth)
{
QMessageBox::information(this, "Инфо", "Изменили ширину");
}


Компилится все нормально, без ошибок и ничего не происходит при изменении ширины столбца. Что не так делаю ?


Пишу как умею. Дорого, долго...
...
Рейтинг: 0 / 0
07.09.2013, 22:55
    #38390165
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
Это "слот" а не "метод". Его надо не переопределять, а подключать.
Читай до просветления:
http://qt-project.org/doc/qt-5.0/qtcore/signalsandslots.html
...
Рейтинг: 0 / 0
08.09.2013, 06:49
    #38390212
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
White Owl, Хм.. так я почему-то и думал, что он подключен к какому-либо сигналу внутри класса (могу выражаться не корректно ввиду не полного понимания все модели взаимодействия объектов в Qt и C++). В моем случае, к чему я его могу подключить ? (А главное зачем ?). Сигнала или события, генерируемых при изменении размеров столбцов, я пока, в доступных мне документациях, не нашел. Весь ассистент до конца детально не прочитал Может я вообще не правильным путем иду ? Тогда попробуем так....

Как отследить изменение размеров столбца в QTableView ?
...
Рейтинг: 0 / 0
08.09.2013, 09:27
    #38390223
olegov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
Нашол.. можно присоединиться к сигналу заголовков... connect(this->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), this, SLOT(on_columnRsized(int, int, int)));
...
Рейтинг: 0 / 0
08.09.2013, 16:09
    #38390363
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
White OwlЭто "слот" а не "метод". Его надо не переопределять, а подключать.
Читай до просветления:
http://qt-project.org/doc/qt-5.0/qtcore/signalsandslots.html

Подключить его конечно надо, но не обязательно руками. В 80% это делает компилятор GUI сам, автоматом, на основе имени слота в коде.
...
Рейтинг: 0 / 0
08.09.2013, 16:11
    #38390365
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
olegov,

Имя слота неверное, тогда тебе придется его коннектить самому.
...
Рейтинг: 0 / 0
08.09.2013, 17:58
    #38390420
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить событие QTableView::columnResized ?
Видимо, тебе нужен сигнал

void QHeaderView::sectionResized(int logicalIndex, int oldSize, int newSize) [signal]

заголовка приконнектить на соотв. свой слот.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как перехватить событие QTableView::columnResized ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]