- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
setOb-6ren">
如果我有这样的停靠小部件:
QDockWidget *shapesDockWidget = new QDockWidget(tr("Shapes"));
shapesDockWidget->setObjectName("shapesDockWidget");
shapesDockWidget->setWidget(treeWidget);
addDockWidget(Qt::RightDockWidgetArea, shapesDockWidget);
按照 QMainWindow::save/restoreState 上的文档,我似乎可以使用如下函数直接保存/恢复 dockwidgets:
void MainWindow::writeSettings()
{
QSettings settings("Software Inc.", "Icon Editor");
settings.beginGroup("mainWindow");
settings.setValue("geometry", saveGeometry());
settings.setValue("state", saveState());
settings.endGroup();
}
void MainWindow::readSettings()
{
QSettings settings("Software Inc.", "Icon Editor");
settings.beginGroup("mainWindow");
restoreGeometry(settings.value("geometry").toByteArray());
restoreState(settings.value("state").toByteArray());
settings.endGroup();
}
但是我怎样才能得到指向恢复的 dockwidgets 的指针呢?像指针 shapesDockWidget 吗?
最佳答案
获取小部件的指针与保存/恢复 GUI 状态无关。当您调用 saveState()
函数时,它会遍历所有组件并存储它们的坐标、方向等。当您调用 restoreState()
时,所有小部件应该已经创建是为了让函数调整它们的几何形状。
如果您需要获取 anchor 接窗口的指针,只需将其作为成员变量存储在您的类中即可。所以定义为:
class MainWindow : public QMainWindow
{
[..]
private:
QDockWidget *shapesDockWidget;
};
并在创建 anchor 接窗口实例时使用该变量:
shapesDockWidget = new QDockWidget(tr("Shapes"));
关于c++ - Qt:通过 QMainWindow::save/restoreState 控制 DockWidgets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27940421/
我目前正在编写一个小应用程序,允许用户自由定义绘图。当前的解决方案使用 QDockWidget,因此用户可以根据需要调整大小和重新排列绘图。 我对这个解决方案很满意,但仍然有一个缺点。如果用户将新的
我想用我的 MainWindow 提供的 saveState()/restoreState() 函数保存我的自定义 DockWidget(继承自 QDockWidget)。 我有两个问题:1. 如何保
在 Qt 中,您可以对dockWidgets 进行制表。如果我这样做,选项卡会显示在dockWidgets 的底部,如左图所示。这是我在使用最新的 Qt4 和 PyQt4 的 Windows 7 下得
在我们的应用程序中,我们有可变数量的 dockwidgets,因为其中一些是由在运行时加载的插件添加的。并非所有 dockwidgets 都需要同时可见。这在很大程度上取决于用户正在做什么以及哪些插件
我正在尝试制作一个由 QMainWindow 组成的应用程序,其中的中央小部件是 QToolBar(这可能不常见,但出于我的目的工具栏非常适合)。仅允许在下方停靠码头。我向它添加了一个 QDockWi
如果我有这样的停靠小部件: QDockWidget *shapesDockWidget = new QDockWidget(tr("Shapes")); shapesDockWidget->setOb
我正在使用 Qt 开发一个应用程序,这是一个我一点也不熟悉的框架,我正试图隐藏和显示我使用设计器创建的 DockWidget。 与许多关于在 Qt 中隐藏和显示 dockwidgets 的看似相似的问
我是一名优秀的程序员,十分优秀!