锥度钻头大全:Qt中菜单和快捷键的实现
来源:百度文库 编辑:九乡新闻网 时间:2024/05/08 04:05:13
Qt中的弹出式菜单用类 QPopupMenu表示,每一个菜单需要编写代码逐个加入。
下面构造一个file弹出式 菜单:
QPopupMenu* file = new QPopupMenu;
file->insertItem( "&Open", this, SLOT( openFile() ) );
file->insertItem( "&Save", this, SLOT( saveFile() ) );
file->insertSeparator();
file->insertItem( "&Quit", this, SLOT( exitMain() ) );
第一句构造出一个弹出式菜单的实例,后面使用insertItem分别添加四条菜单项目。insertItem有多种使用形式,上面是最常用的也是最简单的一种。第一个参数表示菜单文本,第二个和第三个参数表示接受菜单事件的类和slot。需要注意的是insertItem()方法的第2,3个参数,这实际上是调用了connect()方法把菜单被选择这个事件和某个类的Slot()方法连接起来,这是很典型的用法。
与菜单条对应的是QMenuBar类,QMenuBar也有insertItem方法,不同的是,他使用指向QPopupMenu类的指针作为第二个参数:
QMenuBar* menu;
menu = new QMenuBar( this );
menu->insertItem( "&File", file );
最后是编写openFile(),saveFile()和 exitMain()三个slot,现在可以只编写三个空函数,以后再加上实际功能。
快捷键
Qt中控制快捷键的类是QAccel.但是大多数情况下并不需要直接使用它,而是采用另外一种形式的insertItem方法。Qt中的许多类在生成实例的时候会自动产生快捷键,例如PushButton和QGroupBox.
file->insertItem( "&Open", this, SLOT( openFile() ), CTRL+KEY_O );
file->isnertItem( "&Save", this, SLOT( saveFile() ), CTRL+KEY_S );
给菜单添加快捷键只需要在insertItem函数中加上第四个参数表示。
控制菜单项
有时候需要对菜单项作一些控制,例如让它变灰而禁用,或者使用checkmark。两者分别使用setItemEnbled()和setItemChecked()方法,原型如下:
void QMenuData::setItemChecked( int id, bool check );
void QMenuData::setItemEnabled( int id, bool enable );
第一个参数id是insertItem()方法的返回值:
int id_save = file->insertItem( "&Save", this, SLOT( saveFile() ) );
file->setItemEnable( id_save, FALSE );
Qt中菜单和快捷键的实现
.net中多文档程序中父窗口和子窗口菜单的合并的实现方法
QT和HT的区别
乱谈Qt程序之i18n的实现(从C++到Qt)
网页使用中实用的键盘和鼠标快捷键
Qt的signal/slot机制的原理和使用
基于Qt/Embedded和Qtopia的GUI设计
Qt 4.6 Animation动画实现之状态机
Word中常用的快捷键
如何在Excel 中自定义菜单和菜单栏
在EXCELl和WORD中通过下拉菜单选择录入
如何在Excel 中自定义菜单和菜单栏-
如何在Excel 中自定义菜单和菜单栏--
如何在Excel 中自定义菜单和菜单栏---
如何在 Excel 中自定义菜单和菜单栏
excel表格的基本操作:Excel2003和2007表格中常用快捷键大全1
excel表格的基本操作:Excel2003和2007表格中常用快捷键大全
excel表格的基本操作:Excel2003和2007表格中常用快捷键大全
用ISO C++实现自己的信号槽(Qt另类学习) - 1+1=2 - CSDN博客
EXCEL中最常用的的快捷键
excel中与公式有关的快捷键
Word中常用的快捷键------ 秋无垢
炒股中电脑上常用的快捷键
Photoshop后期调色中使用的快捷键