QPushButton 自定义下拉菜单,不使用setMuen()接口
2015-07-09 21:48
525 查看
由于使用setMent()接口,按钮的下拉菜单出现时,同时按钮会有倒三角型的标志出现。 因此琢磨了一段时间,自定义下拉菜单。
头文件定义:
class MenuButton :Public QPushButton
{
public:
MenuButton(QString name = QString(), QWidget * parent = NULL);
pretect:
virtual void resizeEvent(QResizeEvent *event);
virtual void mousePressEvent ( QMouseEvent * e );
//单击事件
private:
QMenu *menu;
}
源文件:
virtual void resizeEvent(QResizeEvent *event)
{
menu->setFixedWidth(event->size().width());
///菜单宽度与按钮保持一致
}
virtual void mousePressEvent ( QMouseEvent * e )
{
/*****核心代码*******/
QPoint pos;
pos.setY(this->geometry().height());
menu->exec(this->mapToGlobal(pos)); //设置菜单出现的位置, 在按钮的正下方出现
}
我也是经过许多尝试,才弄出来的,希望对你们有用。
效果图:
头文件定义:
class MenuButton :Public QPushButton
{
public:
MenuButton(QString name = QString(), QWidget * parent = NULL);
pretect:
virtual void resizeEvent(QResizeEvent *event);
virtual void mousePressEvent ( QMouseEvent * e );
//单击事件
private:
QMenu *menu;
}
源文件:
virtual void resizeEvent(QResizeEvent *event)
{
menu->setFixedWidth(event->size().width());
///菜单宽度与按钮保持一致
}
virtual void mousePressEvent ( QMouseEvent * e )
{
/*****核心代码*******/
QPoint pos;
pos.setY(this->geometry().height());
menu->exec(this->mapToGlobal(pos)); //设置菜单出现的位置, 在按钮的正下方出现
}
我也是经过许多尝试,才弄出来的,希望对你们有用。
效果图:
相关文章推荐
- 《编程导论(Java)·附录A 使用BlueJ》
- Easyui 小脚本
- MVC4 +EasyUI Tabs 使用
- MVC+EasyUI 菜单导航的实现
- UINavigationController
- 学习easyui疑惑(四)
- MVC4 +EasyUI 使用TreeGrid 方法
- 16-UIViewController 手动控制旋转
- 15-UIViewController 与 状态栏模式设定
- 14-UI控件练习示例QQ音乐
- 13-常见UI控件之 UIPageControl分页
- 12-常用UI控件之 UISwitch开关
- 解决OC 字典根据Value找Key 重复和不重复的两种情况
- 11-常用UI控件之 UIProgressView 进度指示器
- 10-常用UI控件之 UIActionSheet
- 09-常用UI控件之 UIAlert
- 08-常用UI控件之 UIActivityIndicatorView风火轮
- 07-UI常见控件之 UISegmentedControl分栏
- 06-常用UI控件之 UISlider滑块
- 05-常用UI控件之 UIImageView