我正在尝试提取工具按钮的坐标。因此,当有弹出窗口时,它总是从小部件的左上角开始。我正在做这样的事情
menu_something->popup(mapToGlobal(ui.toolButton->pos()));
但是菜单没有显示在靠近工具按钮的地方。有什么建议吗?
最佳答案
与 QDialog 一起运行(可推送和样式化的 ComboBox 对话框): 通过在 QToolButton 的子类中调用它来获取坐标
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)));
关于c++ - 提取 QToolButton Widget 的顶角位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23841844/