Доброго времени суток.
Появилась след. не большая проблема. Правда возможно мне смогу помоч те, кто обладают 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