В моем приложении Text Editor я сохраняю выбор формата шрифта пользователя в качестве предпочтения.
Сигналы и слоты сначала устанавливаются в конструкторе, а затем предпочтения читаются, как показано в коде ниже:
Конструктор:
boldAction->setCheckable(true);
italicAction->setCheckable(true);
underlineAction->setCheckable(true);
fontSizeSelector->setCheckable(false);
connect(boldAction,SIGNAL(changed()),this,SLOT(bold()));
connect(italicAction,SIGNAL(triggered()),this,SLOT(italic()));
connect(underlineAction,SIGNAL(triggered()),this,SLOT(underline()));
ReadUserPreferences ():
void TextEditor::readUserPreferences()
{
QSettings userPreferences(QSettings::NativeFormat,QSettings::UserScope,ORGANIZATION_TITLE,APPLICATION_TITLE);
this->boldAction->setChecked( userPreferences.value("appearance/bold").toBool() );
this->italicAction->setChecked( userPreferences.value("appearance/italic").toBool() );
this->underlineAction->setChecked( userPreferences.value("appearance/underline").toBool());
//other code.
}
Теперь в функции readPreferences, когда boldAction->setChecked(true);
, не должен ли текст стать жирным, потому что механизм сигнала и слота уже определен?Если так, то почему это не работает на моем приложении?Функция bold сама по себе отлично работает.
Есть ли лучший способ сделать это, чем то, что я делаю?Спасибо за вашу помощь