qt的弹出式菜单
来源:互联网 发布:财付通软件下载 编辑:程序博客网 时间:2024/04/28 02:03
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 );
下面构造一个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的弹出式菜单
- 提升方式创建自己的QT控件(弹出式菜单按钮)
- 弹出式菜单的实现
- 弹出式菜单的代码
- 弹出式菜单的响应
- 弹出式菜单的编写
- 弹出式菜单的简单使用
- 弹出式菜单
- 弹出式菜单
- 弹出式菜单
- 弹出式菜单
- 弹出式菜单
- 弹出式菜单
- GEF的弹出式菜单闪烁的问题
- 制作可以自动隐藏的弹出式菜单
- 有关右键弹出式菜单的使能
- Chinaren校友录所用的左边弹出式菜单
- 如何制作带弹出式菜单的按钮
- oracle数据库字符集设置
- qt修改光标
- QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数
- Qt菜单栏的制作
- 为什么程序员不擅长估算时间?
- qt的弹出式菜单
- 在大连做安天技术论坛 GuessMe6
- 动态更改QToolButton的图标
- 用JAVA执行语句sql语句
- Windows时间同步设置
- awk命令
- 前端框架你究竟选什么
- Android -关于注册Google Map Api Key 的方法和网页显示不全的问题
- 均值滤波、中值滤波、维纳滤波 对 高斯噪声、椒盐噪声、乘性噪声 的处理效果