Здравствуйте, Gordon Freeman, Вы писали:
GF>Здравствуйте, 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>>
GF>Здравствуйте.
GF>Спасибо всем за ответы.
GF>Программа должна подгружать .csv файлы (коих может быть более дюжины) в таблицы. Затем в таблицах всё фильтроваться (удалять ненужное и т.д.).
GF>Т.к. количество таблиц не фиксировано, я попытался написать универсальную ф-ю, которая выполняля бы нужные операции при передаче в неё указателя на таблицу как параметра.
GF>Если вызываю ф-ю без параметра, при этом в теле её указывая таблицу (мини-слот как указал К13), то всё пашет: connect(resizeallcol, SIGNAL(clicked()), this, SLOT(SetAutocol()));
GF>Проблема в том, что тогда на каждую таблицу придётся писать отдельную ф-ю.
А ларчик просто открвыался:
connect(resizeallcol, SIGNAL(clicked()), Direction_0_1, SLOT(resizeColumnsToContents()));