那个lastbmpini是qmenu记录本次用qmenu切换壁纸后的壁纸文件,它不会影响qmenu切换壁纸功能。你的切换失败应当是你设置上的失误?还有,切换壁纸是要改注册表才行,确定你当前的用户有写注册表的权限。 查看原帖>>
这个还是比较简单的
void CMainFrame::MenuChange()
{
//CBitmap pMenuBitmap; //需要定义为成员变量
pMenuBitmap = new CBitmap;
pMenuBitmap->LoadBitmap(IDB_BITMAP_right);//需要加载的图标资源
CMenu pWcqMenu;
pWcqMenu = GetMenu()->GetSubMenu(0);//子菜单,0代表主菜单的第一个子菜单
pWcqMenu->SetMenuItemBitmaps(1,//第几个功能,从0开始 MF_BYPOSITION| MF_STRING| MF_ENABLED,//属性 pMenuBitmap,
pMenuBitmap
);
}
上面的函数 在主框架int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中调用即可
QMenu pMenu = new QMenu(this);
QAction pTest1 = new QAction(QIcon("copyico"),"复制", this);
QAction pTest2 = new QAction("删除", this);
QAction pTest3 = new QAction("标记", this);
QAction pTest4 = new QAction("取消标记", this);
//把QAction对象添加到菜单上
pMenu->addAction(pTest1);
pMenu->addAction(pTest2);
pMenu->addAction(pTest3);
pMenu->addAction(pTest4);
//添加分隔线
//pMenu->addSeparator();
//设置点击后发送的数据
// pTest1->setData(1);
//连接鼠标右键点击信号
connect(pTest1, &QAction::triggered, this, &sub::ClickCopy);
connect(pTest2, &QAction::triggered, this, &sub::ClickDel);
connect(pTest3, &QAction::triggered, this, &sub::Clicktink);
connect(pTest4, &QAction::triggered, this, &sub::ClickDeltink);
//在鼠标右键点击的地方显示菜单
pMenu->exec(cursor()pos());
//释放内存,若此处不手动释放,则必须等到程序结束时才都能释放
QList list = pMenu->actions();
foreach (QAction pAction, list)
delete pAction;
delete pMenu;
Qt 56样例:
MainWindowh:
#ifndef MAINWINDOW_H#define MAINWINDOW_H
#include <QObject>
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget parent = 0);
~MainWindow();
private:
void initialAction();
void initialMenuBar();
void initialToolBar();
void initialStatusBar();
void open();
QAction openAction;
};
#endif // MAINWINDOW_HMainWindowcpp:#include <QAction>
#include <QMenuBar>
#include <QMessageBox>
#include <QStatusBar>
#include <QToolBar>
#include "MainWindowh"
MainWindow::MainWindow(QWidget parent) :
QMainWindow(parent)
{
setWindowTitle(tr("Main Window"));
initialAction();
initialMenuBar();
initialToolBar();
initialStatusBar();
}
MainWindow::~MainWindow()
{
}
void MainWindow::initialAction()
{
openAction = new QAction(QIcon(":/images/doc-open"), QObject::tr("&Open"), this);
openAction->setShortcuts(QKeySequence::Open);
connect(openAction, &QAction::triggered, this, &MainWindow::open);
}
void MainWindow::initialMenuBar()
{
QMenu file = menuBar()->addMenu(QObject::tr("&File"));
file->addAction(openAction);
}
void MainWindow::initialToolBar()
{
QToolBar toolBar = addToolBar(QObject::tr("&File"));
toolBar->addAction(openAction);
}
void MainWindow::initialStatusBar()
{
statusBar();
openAction->setStatusTip(QObject::tr("Open an existing file"));
}
void MainWindow::open()
{
QMessageBox::information(this, tr("Information"), tr("Open"));
}
只要读成Q
MENU就可以了,拼音标注读音为“KIU
MEN
NIU”。
Q一般是CUTE缩写,意思为聪明或者可爱。
MENU是菜单的意思。
结合起来就是:智能菜单。
我想可能是网吧里用的软件吧?
按照你所说,你只是想要主菜单点击时,就会调用一段程序吧,那么你可以不用action,如果说你这action在别的地方没用的话。
如上所说,你应该重写QMenu(也就是你的主菜单)的mousePressEvent事件,也就是鼠标按下事件,然后在这个事件调用你想要的方法,或者直接在这个事件里面执行你的 *** 作。
如果不懂,百度“Qt事件”,比如Qt鼠标单击事件什么的,看看如何重写相关事件。
以上就是关于QMENU 菜单自身同步的一个小问题,能无法解决全部的内容,包括:QMENU 菜单自身同步的一个小问题,能无法解决、怎么给菜单项加上图标,在MFC中,谢谢啦~、QT 右键菜单等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)