Qt: Нет границ на кнопках, делающих их не кликабельными?

Я пытаюсь установить стиль для кнопки, чтобы она не имела границ, но кажется, что отсутствие границы делает кнопку недоступной для нажатия. Есть ли лучший способ получить без границ?

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 ответ

Решение

РЕДАКТИРОВАТЬ: WHOOPS, только что заметил, что это вопрос относительно 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, чтобы исправить цвета (как в моем примере).

Другие вопросы по тегам