我想构建一个有两个标签的单窗口应用程序。如何在窗口上设置两个选项卡并单击以切换,就像浏览器的窗口和选项卡一样?
PS:这两个标签具有不同的按钮布局和文本小部件,功能也不同。
答案 0 :(得分:16)
http://doc.qt.io/qt-5/qtabwidget.html#details
QTabWidget
类提供了一堆选项卡式小部件。标签窗口小部件提供标签栏(请参阅
QTabBar
)和“页面区域” 用于显示与每个选项卡相关的页面。默认情况下,标签栏 显示在页面区域上方,但配置不同 可用(见TabPosition
)。每个选项卡都与不同的关联 小部件(称为页面)。页面中仅显示当前页面 区域;所有其他页面都被隐藏了。用户可以显示不同的内容 页面通过单击其选项卡或按其Alt +字母快捷键if 它有一个。使用
QTabWidget
的正常方法是执行以下操作:
- 创建
QTabWidget
。- 为选项卡对话框中的每个页面创建一个
QWidget
,但不要为它们指定父窗口小部件。- 将子窗口小部件插入到页面窗口小部件中,使用布局将它们正常放置。
- 调用
醇>addTab()
或insertTab()
将页面小部件放入标签小部件,为每个标签提供一个带有可选键盘的合适标签 快捷方式。标签的位置由
tabPosition
定义,其形状由。{1}}定义tabShape
。...
你有答案。
编辑:链接到一个例子。
http://doc.qt.io/qt-5/qtwidgets-dialogs-tabdialog-example.html
更新:除了使用QTabWidget
带来的所有优势之外,QDockWidget
还附带了一些标签的附加功能,就像将它们撕成一个单独的窗口一样。我最近使用QDockWidgets
来获得几乎相同的标签外观,但是撕下来了,右键单击选中的标签列表。
希望有所帮助。