QPushButton背景颜色重叠边框

时间:2017-12-09 18:50:49

标签: c++ css qt background-color qpushbutton

我正在使用QPushButton类,并在设置样式表后将对象添加到QGraphicsProxyWidget。但是,当我设置border-radius时,background-color仍然会与边框重叠。我怎么摆脱这个?

示例:(其中levelOneEasyProxy为QGrpahicsProxyWidget

QPushButton* levelOneEasyButton = new QPushButton();
levelOneEasyButton->setGeometry(QRect(sceneRect().width()*0.05, sceneRect().height()*0.2, 70, 50));
levelOneEasyButton->setText("1");
levelOneEasyButton->setStyleSheet("QPushButton {"
                                  "background-color: rgb(92, 249, 158);"
                                  "color: white;"
                                  "font-size: 16px;"
                                  "border-style: solid;"
                                  "border-width: 2px;"
                                  "border-radius: 10px;"
                                  "}"
                                  "QPushButton:pressed {"
                                  "background-color: rgb(66, 191, 118);"
                                  "}");
levelOneEasyProxy = addWidget(levelOneEasyButton);
levelOneEasyProxy->setZValue(10.0);

当前结果:

enter image description here

1 个答案:

答案 0 :(得分:1)

我发现使用上面的代码会设置border-radius,但需要使用translucent上的setAttribute将背景设置为QPushButton。这可以使用以下代码完成:

qPushButtonObject->setAttribute(Qt::WA_TranslucentBackground);

这将消除重叠的background-color