如何从QPushButton中删除边框?

时间:2011-09-20 20:51:07

标签: qt

我在QTreeView的行中有一些QPushButtons,它们会出现这些黑色边框,我似乎无法修改它们。目前,我可以使用以下代码将按钮变灰:

for (int i = 0; i < QPalette::NColorRoles; i++){
    QPalette::ColorRole thisRole = static_cast<QPalette::ColorRole>(i);
    QColor newColor = commitPalette.color(QPalette::Disabled,thisRole);
    int grayColor = qGray(newColor.rgb());
    newColor.setRgb(grayColor,grayColor,grayColor,50);
    commitPalette.setColor(QPalette::Disabled, thisRole, newColor);
}

但它对边界没有任何作用。我更喜欢避免使用样式表,因为我喜欢QPalette的构造函数提供的自动颜色生成

Example of borders

2 个答案:

答案 0 :(得分:13)

如果您正在使用Qt创建者,请右键单击QPushButton并将setStyleSheet设置为border: none;

答案 1 :(得分:5)

如果您设置QButton属性isFlat = true,则禁用边框,除非单击该边框。