Re[2]: Вызов метода при передаче имени объекта в функцию
От: Gordon Freeman  
Дата: 19.09.17 08:03
Оценка:
Здравствуйте, Igore, Вы писали:

I>Здравствуйте, Gordon Freeman, Вы писали:


GF>>Доброго всем времени дня.

GF>>Пытаюс вызвать метод при передаче имени объекта в функцию.
I>Передача дополнительных данных которых нет в сигнале
Автор: Igore
Дата: 18.02.15


GF>>Подгружаю данные в таблицу:

GF>>Direction_0_1 = new QTableWidget(0, 0, Direction_0);
I>Лучше сразу хорошо делать, использовать QTableView

GF>>По нажатию кнопки колонки должны изменить ширину по размеру данных. В первом случае всё работает:

GF>>connect(resizeallcol, SIGNAL(clicked()), this, SLOT(SetAutocol()));
GF>>Во втором нет:
GF>>connect(resizeallcol, SIGNAL(clicked()), this, SLOT(SetAutocol(Direction_0_1)));
I>Слот не может принимать больше параметров чем испускается в сигнале.

GF>>Компилятор не ругается, но результат нулевой.

I>При таком синтаксисе ошибка во время исполнения, в Output выведется, и connect false вернет

GF>>P.S. Я в Qt и С++ новичёк. Учу потихоньку. Прошу сильно не ругать.

I>А зачем тебе передавать table как параметр?
I>
I>connect(resizeallcol, SIGNAL(clicked()), this, SLOT(SetAutocolDirection_0_1()));
I>void MainWindow::SetAutocolDirection_0_1()
I>{
I>  Direction_0_1->resizeColumnsToContents();
I>}
I>// Или даже объединить
I>connect(resizeallcol, &QPushButton::clicked, this, [this](){Direction_0_1->resizeColumnsToContents();});
I>



Здравствуйте.
Спасибо всем за ответы.

Программа должна подгружать .csv файлы (коих может быть более дюжины) в таблицы. Затем в таблицах всё фильтроваться (удалять ненужное и т.д.).
Т.к. количество таблиц не фиксировано, я попытался написать универсальную ф-ю, которая выполняля бы нужные операции при передаче в неё указателя на таблицу как параметра.
Если вызываю ф-ю без параметра, при этом в теле её указывая таблицу (мини-слот как указал К13), то всё пашет: connect(resizeallcol, SIGNAL(clicked()), this, SLOT(SetAutocol()));
Проблема в том, что тогда на каждую таблицу придётся писать отдельную ф-ю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.