在掌握 Qt 5 — 第 23 页中,创建两个
.ui
表单(mainwindow.ui
、task.ui
)后,他们给出以下说明:
打开MainWindow.ui文件并编辑它,得到以下结果:
并显示一张带有
mainwindow.ui
的图片,现在将 tasksLayout
(使用 task.ui
)QVBoxLayout 添加为子项。
他们对如何做到这一点给出零解释。我尝试将 QVBoxLayout 放在适当的位置,将其重命名为
tasksLayout
,并尝试构建,但收到错误:
分配不完整类型'Ui::Task', ui(new Ui::Task)
我假设这里的技术是在代码中动态加载子表单,正如我相信这段代码所做的那样:
ui->tasksLayout->addWidget(task);
我如何实现这一目标?
我是《Mastering Qt 5》一书的合著者。
toolbarLayout
和 tasksLayout
。对象检查器的屏幕截图向您显示了项目层次结构:因此您可以看到 toolbarLayout
包含按钮、间隔符和标签。但tasksLayout
是空的。与其他项目一样,布局可以拖放,但将显示为红色矩形。因此,如果您将 QLabel 放入此红色矩形内,则标签将位于布局“内部”。对于这个简单的 UI (),只需遵循从上到下的层次结构即可:
toolbarLayout
toolbarLayout
toolbarLayout
(蓝色
将显示辅助线)并将其重命名为tasksLayout
添加垂直间隔符tasksLayout
(再次检查蓝色辅助线)
决定在回到这个话题之前先集中时间提高 C++ 的熟练程度;因此响应延迟。
对于这个简单的 UI(屏幕截图),只需遵循从上到下的层次结构即可:
1 将水平布局拖放到中央小部件内,并将其重命名为“toolbarLayout”
2 右键单击中央小部件并“布局” 垂直”
3 将标签、间隔符和按钮拖放到 “工具栏布局”
4 将垂直布局拖放到 “toolbarLayout”(将显示蓝色辅助线)并将其重命名 “任务布局”
5 在“tasksLayout”下添加一个垂直间隔(再次检查 蓝色辅助线)
谢谢,这正是我完成表单布局所需的信息。从头开始重新做了章节教程,这次顺利完成了。
关于本书以及缺乏对表格(ui)的解释 创作:
本书是Packt“mastering”系列的一部分,不是一本 初学者指南。
第 1 章是为了帮助没有 Qt 的人 想要从高级书籍中学习的知识。这不是简单的方法 你也许应该尝试通过其他一些东西来完成你的学习 初学者教程/书籍/视频/网站(如果您有的话) 困难。
说得对,但是,恕我直言,如果您要包含入门教程,则不应省略步骤。
另外,我喜欢书籍,而且目前缺乏有关 Qt 的初学者印刷材料,所以我做出了最好的选择。
原帖
将我的所有文件与下载的书籍源进行比较后,我发现这是 mainwindow.ui 表单的问题。
对表单结构还没有足够的了解,无法在没有工作源进行比较的情况下修复它。
正如我所说,他们没有给出如何完成两种形式之间的连接的说明——只是把我带到泳池边,然后把我推进去:-S
书中内容不错,但需要认真编辑才能清晰。