c++ - 如何在 Qt 中保存 setMovable(工具栏)?

标签 c++ qt toolbar

如何在 Qt 中存储工具栏的 setMoveable 属性?

我正在使用 QSettingssaveState() 来保存工具栏的状态(例如位置)。但显然这不会保存 setMoveable 属性。

这是目前加载和保存的代码:

void MainWindow::readSettings()
{
    QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
    const QByteArray geometry = settings.value("geometry", QByteArray()).toByteArray();
    const QByteArray windowState = settings.value("windowstate", QByteArray()).toByteArray();
    if (geometry.isEmpty()) {
        const QRect availableGeometry = QApplication::desktop()->availableGeometry(this);
        resize(availableGeometry.width() / 3, availableGeometry.height() / 2);
        move((availableGeometry.width() - width()) / 2,
             (availableGeometry.height() - height()) / 2);
    } else {
        restoreGeometry(geometry);
    }
    if (!windowState.isEmpty()) {
        restoreState(windowState);
    }
}

void MainWindow::writeSettings()
{
    QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName());
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
}

最佳答案

我认为你必须自己存储它们,使用类似的东西

QSettings settings(...);
settings.setValue("movable", toolbar->isMovable());

toolbar->setMovable(settings.value("movable", false).toBool());

分别假设有一个QToolbar之类的

QToolbar *toolbar;

请注意,您也可以在此处使用诸如组之类的东西

settings.beginGroup("QToolbar");
// access settings here (store/load)
settings.endGroup();

这有助于对设置进行分组。

关于c++ - 如何在 Qt 中保存 setMovable(工具栏)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264451/

相关文章:

c++ - 何时删除返回值的已分配内存

c++ - 如何检查QImage是否有效?

c++ - Qt中如何绘制数据流图?

android - ScrollView 滚动时如何隐藏和显示 Material 工具栏?

c++ - 奇怪的错误读取文件

c++ - 如何使用 C++11 的最小 gc 支持

java - android app Toolbar.setTitle error Attempt to invoke virtual method 'void.androidx.appcompat.widget' 错误

delphi - 如何用Delphi实现高亮工具栏图标?

c++ - JNDI 的 C++ 等价物是什么?

c++ - QMutexLocker 和 QMutex 哪个更好用?