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

Python 在QT中创建浮动框UI的方法,python,qt,Python,Qt,“支持”气泡的作用类似于工具提示,单击按钮时,它会出现在按钮旁边 这个泡沫是如何产生的?它允许将小部件放置在其内部。 这是一个小部件本身还是某种浮动布局? 我不熟悉QT,不知道如何实现这一点,使用哪个小部件来实现这一点?TL;DR:一个简单的QWidget,按需显示,并按编程方式放置在目标按钮旁边 其他选择: QMenu和相关类可用于创建您自己的菜单,但这将是一个非常痛苦的定制过程,可能对您的情况来说不够灵活 QDialog是您想要一个模式或独立窗口的完美匹配,您可以在其中拖动,等待用户输入。

“支持”气泡的作用类似于工具提示,单击按钮时,它会出现在按钮旁边

这个泡沫是如何产生的?它允许将小部件放置在其内部。 这是一个小部件本身还是某种浮动布局?
我不熟悉QT,不知道如何实现这一点,使用哪个小部件来实现这一点?

TL;DR:一个简单的
QWidget
,按需显示,并按编程方式放置在目标按钮旁边

其他选择:

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

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

  • 放置工具提示并显示它

    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();
    }
    

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

它可能是一个
QWidget
,其中按钮的
单击()
信号连接到一个自定义插槽,该插槽调用
show()/hide()
QWidget的
…如何在widget中显示箭头?这样的大纲是否有预定义的类?
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();
}