qt 右键菜单事件
有時候需要右鍵菜單完成一些小功能,不方便直接用按鈕;
使用右鍵菜單,方法很多 有一篇博客很全 Qt實現右鍵菜單的五種方法!(以QListWidget為例)
但是常用的就是重寫virtual void contextMenuEvent(QContextMenuEvent *event);右鍵菜單函數.
以保存halcon圖片為例子;
一 頭文件
#include <QContextMenuEvent>二 重寫事件聲明
protected :virtual void contextMenuEvent(QContextMenuEvent *event); private slots: void saveimage();三 具體實現
void CameraDtecte1::contextMenuEvent(QContextMenuEvent *event) {//創建一個菜單 添加事件QMenu *menu = new QMenu();QAction *minimized = new QAction(u8"保存圖片",this);menu->addAction(minimized);connect(minimized, SIGNAL(triggered(bool)), this, SLOT(saveimage()));//讓菜單移動到鼠標位置并顯示.menu->exec(QCursor::pos()); } void CameraDtecte1::saveimage() {HObject image;HTuple win;try {if (CurrentCCD.right(1).toInt() <= 6){win = hv_WindowID[CurrentCCD.right(1).toInt()];DumpWindowImage(&image,win);QString filename = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("保存文件位置"), "", tr("image file(*.bmp)"));if (!filename.isNull()) {QTextCodec *pcode = QTextCodec::codecForName("gb18030");string na = pcode->fromUnicode(filename).data();WriteImage(image, "bmp", 0, na.c_str());}}}catch (exception) {}}?
總結
- 上一篇: 电脑操作技巧:如何抓图
- 下一篇: 10-5 查询选修张老师讲授所有课程的学