Это может быть более общий вопрос программирования на C ++, чем специфический для Qt. У меня проблема со статическими элементами и их инициализацией.
У меня есть класс табличной модели, который наследует QAbstractTableModel, и я хочу, чтобы у каждого был список всех семейств системных шрифтов, используя QFontDatabase :: family (). Я пытаюсь сделать этот список семей статичным, чтобы он был заполнен только один раз. Каков наилучший способ сделать это? У меня проблемы с пониманием, как инициализировать список, так как он статический. Вот пример того, что я имею в виду:
class Model : public QAbstractTableModel
{
public:
Model();
protected:
static QStringList fontFamilies;
}
Model::Model() : QAbstractTableModel(0)
{
fontFamilies = QFontDatabase().families();
}
Я думаю, что я не должен инициализироваться в конструкторе (и я на самом деле не пробовал приведенный выше код, чтобы увидеть, что скажет компилятор), но я не уверен, как подойти к этому. Я не думаю, что могу сделать
QStringList Model::fontFamilies = QFontDatabase().families();
Спасибо, если вы можете оказать любую помощь!