Как сделать кнопку QPushButton прозрачной без задержки?

Как создать кнопку, которая будет прозрачной по умолчанию, но изменяет свой цвет при наведении без использования opacity и с задержкой только в случае использования метода button->setAttribute(Qt::WA_TranslucentBackground);?
  • 7 июня 2024 г. 16:31
Ответы на вопрос 1
Для создания прозрачной кнопки без задержки и изменения цвета при наведении можно использовать следующий код в Qt:

```cpp
QPushButton *button = new QPushButton("Button Text", this);
button->setStyleSheet("background: transparent; color: #000000; border: none;"); // Устанавливаем прозрачный фон и цвет текста
button->setCursor(Qt::PointingHandCursor); // Изменяем форму курсора при наведении на кнопку

connect(button, &QPushButton::pressed, [button]() {
    button->setStyleSheet("background: #ffffff; color: #000000; border: none;"); // Изменяем цвет фона при нажатии на кнопку
});

connect(button, &QPushButton::released, [button]() {
    button->setStyleSheet("background: transparent; color: #000000; border: none;"); // Возвращаем прозрачный фон после отпускания кнопки
});
```

Этот код создаст кнопку с прозрачным фоном и черным текстом, которая будет изменять свой цвет фона на белый при нажатии и возвращаться к прозрачному фону после отпускания кнопки. У кнопки также будет форма курсора PointingHandCursor при наведении.
Похожие вопросы