在QT中创建浮动框UI的方法

时间:2018-05-08 01:37:36

标签: python qt

enter image description here

“支持”气泡的行为类似于工具提示,当点击按钮时,它会出现在按钮旁边。

这个泡沫是如何产生的?它允许小部件放在自身内部。 这是一个小部件本身还是某种浮动布局? 我是QT的新手,无法弄清楚如何处理这个,用于实现这个的小部件?

1 个答案:

答案 0 :(得分:1)

TL; DR :一个简单的QWidget,按需显示,并以编程方式放置在您定位的按钮旁边。

其他选择:

  • QMenu和相关的类可以用来创建自己的菜单,但这对定制来说非常痛苦,并且可能对你的情况不够灵活
  • 当你想要一个可以拖动的模态或独立窗口等待用户的输入时,
  • QDialog是完美的匹配。但是你的是静态的而不是模态的
  • QWidget是Qt中所有小部件的基类,它完全是多用途的,可以用作其他小部件的容器。 QLayout然后为您的内容提供结构(对齐,调整大小......)

如何

  • (可选)在Qt Designer
  • 中创建窗口小部件的内容
  • 创建用户界面时实例化对话框
  • 连接“点击”信号按钮

    connect(mybutton, &QPushButton::clicked, this, &MainWindow::showXButtonTooltip);
    
  • 放置工具提示并显示

    void MainWindow::showXButtonTooltip()
    {
        // Get your button position relative to the common
        // parent with QWidget::pos() and mapToParent.
        // Or just use a fixed value...
        QPoint position;
        m_tooltipWidget.move(position.x, position.y);
        m_tooltipWidget.show();
    }
    

小心不要将工具箱放在布局中,否则您将无法“移动”它,因为这是布局的责任。