c++ - 提取 QToolButton Widget 的顶角位置

标签 c++ qt

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

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/

相关文章:

c++ - 如果 HWND 窗口仍然存在,我该如何确定

c++ - 在鼠标悬停在填充栏上时更改 QProgressBar 的颜色/文本

c++ - Qt5.2 NetworkManager::networkInterfaces()

c++ - 在 C++ 中丢弃模板参数是否安全?

c++ - MFRC522 PICC responded with NAK (Porting MFRC522 arduino library[C++] to [C])

c++ - C++ 中的 SQLite SELECT JOIN 和 VIEWS

c++ - Qt - 带有图形 View 框架的拖放

c++ - 带有动态添加的小部件的 QScrollArea

c++ - c++98 如何通过特定字段在 QList 中查找对象?

c++ - 下载 Twitter 搜索页面时出现问题