Для этого я программирую на c ++, используя qt4 для разработки моего интерфейса.
В этой программе я создаю виджет, который порождает (неизвестное) число QPushButtons в зависимости от пользовательского ввода, поэтому я создаю их динамически. В момент создания я хочу соединить эти кнопки с функцией, которая будет нуждаться в параметрах, существующих в итерации создания кнопок (например, int, который будет указывать позицию в векторе), но я не могу этого сделать из-за природы сигналов / слотов и природы сигнала clicked () от QPushButtons (он не принимает параметры).
Код выглядит примерно так:
vector<int> myVector
for(int i=0; i<user_input_number; i++){
...
QPushButton *testingb4 = new QPushButton("Execute", this);
connect( testingb4, SIGNAL( clicked() ), this, SLOT( customSlot() ) );
...
}
"customSlot" потребуется "i", чтобы определить, к какому элементу моего вектора я должен получить доступ. Как мне решить эту проблему?