Russian Qt Forum
Ноябрь 24, 2024, 00:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Разное поведение закраски кнопки  (Прочитано 1761 раз)
carhun
Гость
« : Декабрь 14, 2012, 12:02 »

Доброго времени суток.

Появилась след. не большая проблема. Правда возможно мне смогу помоч те, кто обладают KDE, Unity, т.к. эти "баги" замечены только там и пробывались только там...

Собственно, я хочу сделать след.: закрасить фон кнопки.

Делаю это вот так:
mybutton.cpp:
Код:
#include "mybutton.h"

MyButton::MyButton(const QString &str, QWidget *parent) :
    QPushButton(str, parent)
{
    QPalette pal;
    pal.setColor(backgroundRole(), Qt::yellow);
    this->setPalette(pal);
}

mybutton.h:
Код:
#ifndef MYBUTTON_H
#define MYBUTTON_H

#include <QPushButton>

class MyButton : public QPushButton
{
    Q_OBJECT
public:
    explicit MyButton(const QString &str, QWidget *parent = 0);
   
signals:
   
public slots:
   
};

#endif // MYBUTTON_H

main.cpp:
Код:
#include <QApplication>

#include "mybutton.h"
#include <QVBoxLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;

    QVBoxLayout *layout = new QVBoxLayout(&w);
    layout->addWidget(new MyButton("MyPushButton", &w));

    w.show();
   
    return a.exec();
}

Далее соотв. вопрос почему оно в KDE - все закрышивает все отлично, а в Unity - не при каких условиях не закрашивает и она остается всегда серой?

Кстати, если делать через setStyleSheet(...),то работает везде одинаково.

И 2й есть вопрос, почему если я в мейне создам кнопку без layout'a, то когда я буду менять размер окошку, то цвет тоже меняется??? т.е. я создаю кнопку как-то так:
Код:
#include <QApplication>

#include "mybutton.h"
#include <QVBoxLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;

    new MyButton("MyPushButton", &w);

    w.show();
   
    return a.exec();
}



С уважением,
 carhun
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Декабрь 14, 2012, 13:44 »

Хочешь цветную кнопку - используй QToolButton.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 23.