zar*_*zar 28 c++ qt qsplitter qt-creator qt-designer
当我按下一个按钮时,我会弹出一个用户选择的对话框并在结尾处按"确定".我想在这个对话框中有一个分割器.左侧窗格将显示树,右侧将显示其他内容.我该怎么做?
从Qt示例本身:
QSplitter *splitter = new QSplitter(parent);
QListView *listview = new QListView;
QTreeView *treeview = new QTreeView;
QTextEdit *textedit = new QTextEdit;
splitter->addWidget(listview);
splitter->addWidget(treeview);
splitter->addWidget(textedit);
Run Code Online (Sandbox Code Playgroud)
因此,在此示例中,创建拆分器时没有任何对话框资源.如果我必须创建这种方式,那就意味着我必须在代码中创建所有控件而不是Qt Creator.
当我需要屏幕上的其他控件时,这样做的正确方法是什么?
Nej*_*jat 66
您可以在Qt Designer中创建包含项目的拆分器:
首先将小部件放在设计器中的对话框或小部件上(它们不应该在布局中)
选择要在拆分器中的小部件(通过按住CTL并单击它们)
右键单击选定的窗口小部件,然后从" 布局"菜单中选择"在拆分器中水平布局"或"在拆分器中垂直布局".
现在将网格布局应用于对话框,一切都应该没问题.你会在Object Inspector View中看到类似的东西:

Jos*_*son 11
好吧,我知道这很古老,但这是完整的答案。
首先,在某种小部件容器中,将您的部件放入其中。对于我刚刚做的窗口,我有一个小部件作为我的窗口。我在里面放了两个小部件,标记为topContainer和bottomContainer。然后,我将它们各自需要的所有小部件放入其中,并为它们提供了自己的布局。
然后不要选择主容器。选择要拆分的两个小部件。实际上,您是在它们上放置一个分离器,而不是在主容器上。因此,我转到小部件列表窗口并同时选择两者,然后右键单击对话框窗口,向下滚动到“布局”选项,并且“在拆分器中垂直布局”不会显示为灰色。选择它。
您仍然需要在主容器上进行布局。分离器不是布局。所以那时,我只是在主容器上放置了一个垂直布局。
重复一遍:您没有在容纳您要拆分的碎片的容器上设置布局。您正在选择要拆分的两个小部件并在它们周围添加一个 QSplitter。这就是让它发挥作用的技巧。