Что у меня есть:
в конструкторе:
connect(openAction, SIGNAL(triggered()), this, SLOT(openCatClicked()));
connect(openAction, SIGNAL(triggered()), this, SLOT(openDogClicked()));
Моя функция
void Widget::openClicked()
{
if( mTableModel->openComp(CAT) == true)
{
mCatWidget = new CatWidget();
mCatWidget->show();
}
else if (mTableModel->openComp(DOG) == false)
{
mDogWidget = new DogWidget();
mDogWidget->show();
}
}
В моделе у меня функция:
bool TableModel::openComponent(Type type)
{
if(type == CAT)
{
return true;
}
if(type == DOG)
{
return false;
}
}
Но у меня оба открываются виджета всегда. Нужна ваша помощь
UPD:
bool Model::openComp(Type type)
{
switch (type)
{
case 0:
return Cat;
case 1:
return DOG;
}
return false;
}
UPD2:
void Widget::openClicked()
{
if( mTableModel->openComp(CAT) == true)
{
mCatWidget = new CatWidget();
mCatWidget->show();
}
else if (mTableModel->openComp(DOG) == false)
{
mDogWidget = new DogWidget();
mDogWidget->show();
}
}
Вы к одному action цепляете 2 слота:
connect(openAction, SIGNAL(triggered()), this, SLOT(openCatClicked()));
connect(openAction, SIGNAL(triggered()), this, SLOT(openDogClicked()));
Т.е. Вы на сигнал triggered
одного openAction
повесили и openCatClicked
, и openDogClicked
. Вот Вам оба диалога и показываются.
Вам наверное нужно делать так: (хотя ваши намерения не очень понятны):
bool Model::openComp(Type type)
{
return type == CAT;
}
void Widget::openClicked(Type t)
{
if( mTableModel->openComp(t) == true)
{
mCatWidget = new CatWidget();
mCatWidget->show();
}
else
{
mDogWidget = new DogWidget();
mDogWidget->show();
}
}
Может быть, что я неверно понимаю что вы пытаетесь делать...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вот ссылка на англойязычную версиюНе могли бы Вы мне помочь, потому что советы на ссылочной версии не помогли: [https://stackoverflow
Подскажите пожалуйстаЕсть файл у меня settings
На вход принимается радиус(целое число)Нужно вычислить сколько точек входит в круг