Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ilya2013 от Август 01, 2013, 06:49



Название: Значения в слоте
Отправлено: ilya2013 от Август 01, 2013, 06:49
Такой вопрос, можно ли в слот передать значение?
вот так:
Код:
void MainWindow::mySlot(int a)
{
    switch(a)
{        
case 0: view->setVisible(true);
ui->wgt->setAutoFillBackground(false);
view->load(QUrl ("C:/MinGW/bin/progamma_na_konferenciu/pages/Sod.html"));
break;

case 1: t->show(); break;
 
case 2: t2->show(); break;
}
}


а потом вот так:

Код:
  mn->addAction("Содержание",
                  this, SLOT(mySlot(0)));
    mn->addAction("Видеоролики",
                  this, SLOT(mySlot(2)));


Название: Re: Значения в слоте
Отправлено: GreatSnake от Август 01, 2013, 08:36
В слот значение может передать только сигнал.
Только вот QAction будет испускать свой конкретный сигнал triggered( bool checked = false ).
Для решения твоей задачи задействуй QAction::setData():
Код
C++ (Qt)
mn->addAction("Содержание", this, SLOT(mySlot()))->setData( 0 );
mn->addAction("Видеоролики", this, SLOT(mySlot()))->setData( 2 );
...
void MainWindow::mySlot()
{
     QAction* a = qobject_cast< QAction* >( sender() );
     int arg = a->data().toInt();
     ...
}
 


Название: Re: Значения в слоте
Отправлено: ilya2013 от Август 01, 2013, 09:18
Поясниете код пожалуйста  ???


Название: Re: Значения в слоте
Отправлено: ilya2013 от Август 01, 2013, 09:27
Поясните код поалуйста ???


Название: Re: Значения в слоте
Отправлено: GreatSnake от Август 01, 2013, 09:31
Мета-объектная система (http://doc.crossplatform.ru/qt/4.7.x/metaobjects.html)
Сигналы и слоты (http://doc.crossplatform.ru/qt/4.7.x/signalsandslots.html)