QT中的控件QToolButton去掉右下角小三角形箭头

说明:

ToolButton控件在添加Menu后,右下角会显示一个三角形箭头,

 

解决方式:

通过qss文件解决,在qss文件中添加以下代码:

QToolButton[propertyName="0"]
{

        /* 该代码用于设计ToolButton的其他样式 */
        font-family:Microsoft Yahei;
        font-size:12pt;
        background-color:rgb(211, 215, 207);
}

QToolButton::menu-indicator[propertyName="0"]
{

        /* 该代码用于设计隐藏三角形箭头 */
        width:0px;
}

使用方式:将qss文件读取到QString对象中,然后使用

ui->toolButtonName->setStyleSheet(qssStr);

ui->toolButtonName->setProperty("propertyName", 0);

toolButtonName,propertyName均为自定义的名字。

说明:之所以这样写是因为,方便单独为类QToolButton的同一类型的对象单独设置样式(因为设置了相同属性)。

灵感来源:http://t.csdn.cn/L51aW

http://t.csdn.cn/4eqSO

如果后续还无法实现,可以留言咨询。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现QToolButton控件按下后弹出窗口,并且带参数,可以通过以下步骤实现: 1. 在 Qt ,可以通过 `QMenu` 类来创建一个菜单,并将其绑定到一个 `QToolButton` 控件上。可以在菜单添加需要的菜单项,并将其关联到相应的槽函数。 2. 在槽函数,可以创建一个新的窗口,并将需要传递的参数传递给窗口。 下面是一个简单的示例代码: ```cpp // 创建一个新的QToolButton对象,并绑定到特定的信号槽函数上 QToolButton *button = new QToolButton(this); button->setText("Show Dialog"); connect(button, &QToolButton::clicked, this, &MainWindow::onButtonClicked); // 创建一个新的菜单,并将其绑定到QToolButton控件上 QMenu *menu = new QMenu(this); menu->addAction("Menu Item 1", this, &MainWindow::onMenuItemClicked); menu->addAction("Menu Item 2", this, &MainWindow::onMenuItemClicked); button->setMenu(menu); // 响应QToolButton控件的槽函数 void MainWindow::onButtonClicked() { // 获取当前选的菜单项 QAction *action = static_cast<QMenu*>(sender())->menuAction(); // 创建一个新的窗口,并设置需要传递的参数 MyDialog *dialog = new MyDialog(this, m_param1, m_param2); dialog->show(); } // 响应菜单项的槽函数 void MainWindow::onMenuItemClicked() { // 在这里可以添加菜单项的具体实现代码 } ``` 在上面的代码,通过创建一个 `QToolButton` 对象,并将其绑定到一个菜单上来实现弹出窗口的效果。当点击 `QToolButton` 控件时,会触发 `onButtonClicked()` 槽函数。在该函数,首先获取当前选的菜单项,并根据需要传递的参数创建一个新的 `MyDialog` 窗口。最后,调用 `show()` 函数显示该窗口。 需要注意的是,`MyDialog` 类需要自己实现,并且需要在构造函数接收传递的参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值