QToolButton 工具按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QToolButton 工具按钮相关的知识,希望对你有一定的参考价值。

参考技术A 一般在QToolBar中用,显示图标。

1.设置按钮的文本和图标。setToolButtonStyle()

2.设置按钮显示一个箭头 :setArrowTyle(),setToolTip() 设置默认提示

3.设置菜单和按钮显示,setPopupMode(),可以用QToolButton.MenuButtonPopup

4.设置按钮自动升起,setAutoRaise().默认False,

5.QAction类提供了可以插入到窗口小部件中的抽象用户界面操作。

6.QDesktopServices类的openUrl方法,打开网页QDesktopServices.openUrl(QUrl('https://www.alipay.com/'))

7.if  self.sender() == self.act:    判断来源

提取QToolButton Widget的上角位置

【中文标题】提取QToolButton Widget的上角位置【英文标题】:Extract the top corner position of QToolButton Widget 【发布时间】:2014-05-24 06:08:52 【问题描述】:

我正在尝试提取工具按钮的坐标。所以当有一个弹出窗口时,它总是从小部件的左上角开始。我正在做这样的事情

menu_something->popup(mapToGlobal(ui.toolButton->pos()));

但是,在工具按钮附近没有显示菜单。有什么建议吗?

【问题讨论】:

将弹出窗口父级设置为工具按钮是否足够? 不,我想对齐它们。默认情况下,它们将是下拉菜单。我希望他们侧身 我们用这个(见我的回答)作为推送组合框。对话框总是在按钮上方打开。 【参考方案1】:

使用 QDialog 运行(可推送和可设置样式的 ComboBox 对话框): 在 QToolButton 的子类中调用 this 获取坐标

QPoint mypoint = QWidget::mapToGlobal(QPoint(0,0));

并使用

QRect myrect;
myrect.setCoords(topleft.x(),topleft.y(),topleft.x()+width,10);
YourPopupDialog.setGeomentry(myrect);
YourPopupDialog.setFocus();
YourPopupDialog.show();

将对话框定位在按钮上。

编辑以与在连接到 clicked() 的插槽中运行的 QMenu 一起使用:

QMenu menu;
menu.addAction("Text 0");
menu.addAction("Text 1");

menu.exec(ui->toolButtonMenuButton->mapToGlobal(QPoint(0,0)));

【讨论】:

mypoint 在全局坐标中位于左上角,编辑为显示工具按钮而不是 qwidget。我们确实有一个按钮的子类,因此 0,0 在左上角 我建议创建一个 QToolButton 的子类来生成一个名为 dropdownbutton 的独立小部件。新的小部件可以包含一个按钮列表,这些按钮是需要在弹出对话框中绘制的元素。 QMenu 没有 setGeometry。 我们为此使用自定义 QDialog。从未尝试过使用 QMenu,因为我们运行的是全触控应用程序,而这实际上是触控组合框的一部分。 QMenu 继承了 setGeometry(const QRect &)

以上是关于QToolButton 工具按钮的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 之QToolButton工具按钮

QToolButton按钮

QToolButton 中的 X 关闭按钮

带有文本的 QToolButton:覆盖最小高度以模仿常规按钮高度

提取QToolButton Widget的上角位置

修复 QToolButton 图标