Я пытался воспроизвести вашу проблему, но у меня все работает нормально. Вот что я сделал:
С помощью Qt-Designer я поместил QTableView
(с именем tbvTest
) в мою форму.
В конструкторе моей формы вот что я написал:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
ui->setupUi(this);
ui->tbvTest->setModel(new TableModel);
QSettings MySetting(QSettings::IniFormat, QSettings::UserScope, "Test");
QByteArray MyArray = MySetting.value("column_width", "").toByteArray();
ui->tbvTest->horizontalHeader()->restoreState(MyArray);
}
(обратите внимание, что в моем main.cpp
я установил ApplicationName , OrganizationName и OrganizationDomain )
В деструкторе моей формы вот что я написал:
Widget::~Widget()
{
QByteArray MyArray = ui->tbvTest->horizontalHeader()->saveState();
QSettings MySetting(QSettings::IniFormat, QSettings::UserScope, "Test");
MySetting.setValue("column_width", MyArray);
delete ui;
}
Если я запускаю приложение и изменяю ширину столбца, закрываю приложение и запускаю его снова, ширина столбца восстанавливается правильно.
Я чем-то отличаюсь от вас?