python - 在 QT 中创建浮动框 UI 的方法
问题描述
“支持”气泡的作用类似于工具提示,当单击按钮时,它会出现在按钮旁边。
这个泡沫是如何产生的?它允许将小部件放置在自身内部。这是一个小部件本身还是某种浮动布局?我是 QT 的新手,不知道如何解决这个问题,使用哪个小部件来实现这一点?
解决方案
TL;DR:一个简单的QWidget
,按需显示,并以编程方式放置在您定位的按钮旁边。
其他选项:
QMenu
和相关的类可以用来创建你自己的菜单,但是定制起来会很痛苦,而且对于你的情况可能不够灵活QDialog
当您想要一个可以拖动的模态或独立窗口等待用户输入时,这是完美的匹配。但是你的是静态的而不是模态的QWidget
是 Qt 中所有小部件的基类,它是完全多用途的,可以用作其他小部件的容器。QLayout
然后为您的内容提供结构(对齐,尺寸,...)
如何
- (可选)在 Qt Designer 中创建小部件的内容
- 创建 UI 时实例化对话框
连接到按钮“点击”信号
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(); }
注意不要将工具箱放在布局中,否则您将无法“移动”它,因为这是布局的责任。
推荐阅读
- excel-formula - 每周工作总小时数excel
- entity-framework - 如何管理 Entity Framework Core 5 自动生成的桥表?
- spring - 将 Flux 对象转换为另一个 Flux 对象然后保存在 Spring r2jdbc 数据存储库中的正确方法是什么?
- flutter - 列出带有图标的卡片
- vim - vim 升级后看不到颜色
- c# - 具有空数据库值的 asp.net mvc 下拉列表未正确绑定到下拉列表
- c++ - 使用或不使用预编译头文件进行编译时,目标文件的功能是否相同?
- html - 如何使我的图像适合整个容器?
- python - 阿里快递自动化与 selenium 和 python
- mysql - SQL 错误 [1064] [42000]:您的 SQL 语法有错误;检查与您的 MySQL 对应的手册