• 11531阅读
  • 10回复

[提问]工具栏的下拉按钮如何实现 [复制链接]

上一主题 下一主题
离线yueno3
 

只看楼主 倒序阅读 楼主  发表于: 2011-08-19
如图,就是点一下那个 向下的箭头,出来一组按钮

晕这个论坛怎么无法上传图片,我用的是chrome
离线ppdayz

只看该作者 1楼 发表于: 2011-08-19
回 楼主(yueno3) 的帖子
combobox
chrome也可以上传图片的
离线yueno3

只看该作者 2楼 发表于: 2011-08-19
Re:回 楼主(yueno3) 的帖子
引用第1楼ppdayz于2011-08-19 22:03发表的 回 楼主(yueno3) 的帖子 :
combobox
chrome也可以上传图片的

之前用了combobox,好像不行,代码如下



    fileToolBar = addToolBar(tr("文件"));
    fileToolBar->setMovable(false);
    QWidgetAction *widgetAction=new QWidgetAction(this);
    QComboBox *comboBox=new QComboBox;
    comboBox->addAction(projectAction);
    comboBox->addAction(animationAction);
    comboBox->addAction(sceneAction);
    widgetAction->setDefaultWidget(comboBox);
    fileToolBar->addAction(widgetAction);


下拉箭头倒是有了,但是comboBox里的按钮都显示不出来
离线yueno3

只看该作者 3楼 发表于: 2011-08-19
手册说,应该用QWidgetAction,但是QWidgetAction里应该放一个什么控件啊

我放了QComboBox 不能正确显示
离线yueno3

只看该作者 4楼 发表于: 2011-08-19
使用了QPushButton 实现了类似效果,代码如下
    QPushButton *pushButton=new QPushButton;
    pushButton->setMenu(newMenu);
    QWidgetAction *widgetAction=new QWidgetAction(this);
    widgetAction->setDefaultWidget(pushButton);
    fileToolBar->addAction(widgetAction);

但是和预期的不一样,这个地方应该有个缺省按钮的,怎么做缺省按钮?
离线jdwx

只看该作者 5楼 发表于: 2011-08-20
回 4楼(yueno3) 的帖子
那个是QToolButton,带箭头,还可以选箭头方向。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线yueno3

只看该作者 6楼 发表于: 2011-08-20
搞定了,特来结贴

qt是支持这种下拉按钮的方式,就是实现起来比较绕,它是通过一个接口实现的,而不是控件。

代码非常简单

fileToolBar->addAction(newMenu->menuAction());
离线yueno3

只看该作者 7楼 发表于: 2011-08-20
补充一下,还需要一行代码,重新设置一下按钮的图标
newMenu->menuAction()->setIcon(QIcon(":/images/project.ico"));
离线roywillow

只看该作者 8楼 发表于: 2011-08-20
不过提一句
qt下还是不要用ico文件比较好似乎
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ppdayz

只看该作者 9楼 发表于: 2011-08-20
回 6楼(yueno3) 的帖子
你的需求原来是叫菜单。。菜单也是个控件
离线yueno3

只看该作者 10楼 发表于: 2011-08-20
老外管这个叫 drop down button 哈哈哈,跟我们的称呼一样
快速回复
限100 字节
 
上一个 下一个