给你一个替代方案吧 就是不用setStyleSheet 而是用setPalette 望对你有用。
desk.h:
#ifndef DESK_H
#define DESK_H
#include <QWidget>
#include <QDialog>
#include <QObject>
class QToolButton;
class Widget : public QWidget
{
    Q_OBJECT
public:
  Widget(QWidget *parent=0);
private:
   QToolButton *startButton;
};
class Desk : public QDialog
{
public:
   Desk(QWidget *parent=0);
private:
   Widget *widget;
};
#endif
desk.cpp:
#include <QtGui>
#include "desk.h"
Widget::Widget(QWidget *parent) 
: QWidget(parent)
{
    startButton = new QToolButton(this);
    startButton->setGeometry(0,0,30,20);
}
Desk::Desk(QWidget *parent)
: QDialog(parent)
{
    QPalette palette;
    palette.setColor(QPalette::Window, QColor(0, 170, 0, 255));
    Widget* widget = new Widget(this);
    widget->setPalette(palette);
    widget->setAutoFillBackground(true);
    widget->setGeometry(QRect(0,220,320,22));
} 
main.cpp:
#include "desk.h"
#include <QApplication>
int main(int argv, char* args[])
{
    QApplication app(argv, args);
    Desk desk;
    desk.resize(320,240);
    desk.show();
    return app.exec();
}