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 工具按钮的主要内容,如果未能解决你的问题,请参考以下文章