Qt 显示问题,设置背景色或图片,却不显示

首先,不能继承QMainWindows。因为它自带布局器,除非重载他的布局。



   QLabel *a = new QLabel();

                a->setStyleSheet("background-color:red");
        QHBoxLayout *b = new QHBoxLayout();
        b->addWidget(a);
        this->setLayout(b);

//ui.setupUi(this);



上面的代码是在一个类的构造函数中实现的,该类继承与QMainWindows。可是结果确没有出现红色的背景,我应该怎么修改?


应该是setshown的问题

QLabel *a = new QLabel(this); 这样才能在窗口中显示

修改后的代码分析如下:

//QPainter painter(this);
//painter.setRenderHints(QPainter::Antialiasing| QPainter::TextAntialiasing);
//painter.begin(this);
//QImage a;
//a.load("./10010.jpg");
//QPoint p(30,30);
//painter.drawImage(p,a);
//a.save("ok.jpg");
//painter.end();


ui.setupUi(this);//调用系统默认的UI构造,实现菜单栏等(就是那行白框)


QLabel *a = new QLabel(this);//在当前窗口中添加Label控件
a->setStyleSheet("background-color:red");
// a->setShown(true);//如果不在构造函数中指定父级窗口,该Label是默认不显示的,需要单独设置才能显示
QPixmap *c = new QPixmap();
c->load("./10010.png");

//路径一直是个问题,“../”表示上一级目录开始 “./”表示当前同级目录开始 “/”表示根目录开始。

//很多时候失败了。最后用setStyleSheet
// a->setPixmap(*c);
// QImage image;
// image = image.scaled(512,512);
//// image.save("123.png");
// QFile f("123.txt");
// f.open(QIODevice::WriteOnly);
// image.save("123.png");
a->setStyleSheet("QLabel{image:url(10010.jpg)}");
a->setFixedSize(180,224);
QHBoxLayout *b = new QHBoxLayout();
b->addWidget(a);
// this->setLayout(b);
this->setShown(true);
Qt 显示问题,设置背景色或图片,却不显示

你可能感兴趣的:(Qt 显示问题,设置背景色或图片,却不显示)