【问题标题】:Does Qt have combo boxes like Word?Qt 有像 Word 这样的组合框吗?
【发布时间】:2016-06-10 08:40:29
【问题描述】:

在 Microsoft Word 中,如果你想使用子弹,你有一个组合框(如果我们可以称之为组合框)来选择子弹的形状(通过单击小三角形),或者你可以只应用默认的通过单击组合框的按钮。

实际上 Word 中的组合框有两个部分。例如,让我们考虑一种情况,我希望在 Qt 中有一个组合框,其中包含这些项目作为菜单项: “重启”“关机”“注销”。用户需要选择其中之一,但他也可以通过单击其按钮完全像开始中的 Windows 关闭菜单来应用以前选择的项目。您可以点击关机或选择其他选项。

我们如何在 Qt 中实现这一点?

【问题讨论】:

    标签: qt combobox


    【解决方案1】:

    如果您追求的是第二张图片中的菜单,您可以使用QToolButton 来实现您的目标。使用QToolButton 并将popupMode 设置为MenuButtonPopup。它将呈现类似于以下内容的控件。

    然后您可以使用Qt Style Sheets 进一步设置外观样式。在how to style a QToolButton.阅读这个例子

    动态创建QMenu,以便您可以在运行时将其附加到QToolButton,这样所有项目都将包含在菜单中,默认项目除外。默认操作必须分配给QToolButton 本身。

    您可以在运行时使用 void QToolButton::setMenu (QMenu * menu)QMenu 分配给您的 QToolButton

    如果您尝试设计第一个屏幕截图中的控件,我猜您将不得不创建一个自定义 Qt 控件。没有可用的默认控件,它可以产生开箱即用的外观。

    【讨论】:

    • 作为后续,OP 使用的控件依赖于弹出窗口的 Ribbon 框架。由于 Ribbon 框架不是跨平台的,所以 Qt 不支持它。
    猜你喜欢
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2013-05-02
    相关资源
    最近更新 更多