Qt:按钮无边框导致不可点击?

1 投票
1 回答
4001 浏览
提问于 2025-04-16 04:37

我想给一个按钮设置样式,让它没有边框,但似乎没有边框后,按钮就变得无法点击了。有没有更好的方法可以让按钮没有边框呢?

button = QtGui.QPushButton(todo, self)
button.move(0, i * 32)
button.setFixedSize(200,32)
button.setCheckable(True)
button.setStyleSheet("QPushButton { background: rgb(75, 75, 75); color: rgb(255, 255, 255); text-align: left; font-size: 12pt; border: none;}")

1 个回答

1

编辑:哎呀,我刚注意到这是关于Qt/Python的问题(而不是Qt/C++),不过也许我的回答还是能帮到你……

我刚试了一下,结果对我来说是有效的……

这是我使用的代码:

#include <QtGui/QApplication>
#include <QtGui/QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QPushButton* button = new QPushButton("i am toggleable", &w);
    button->setFixedSize(200,32);
    button->setCheckable(true);
    button->setStyleSheet(
    "QPushButton { \
        background: rgb(75, 75, 75);\
        color: rgb(255, 255, 255);\
        text-align: left;\
        font-size: 12pt;\
        border: none;\
    }\
        QPushButton:checked {\
        background: rgb(105, 105, 105);\
    }\
    ");
    w.show();
    return a.exec();
}

注意我为选中的按钮添加了一个额外的CSS规则,这样如果按钮被选中就能看得出来。你确定你的按钮不工作吗?还是说其实它们在工作,只是你看不出来?

编辑2:如果对你来说不管用,你可以试试用 setFlat(True),然后再用额外的CSS规则来调整颜色(就像我示例中的那样)。

撰写回答