Добавление QLabel в QWidget

Я новичок в Qt и C++ и работаю над приложением, и я пытаюсь добавить QLabel в QWidget, используя QHBoxLayout. Я устанавливаю текст метки на что-то, но он не отображается в метке.

Вот кусок кода:

setStyleSheet( "QWidget{ background-color : rgba( 160, 160, 160, 255); border-radius : 7px;  }" );
QLabel *label = new QLabel(this);
QHBoxLayout *layout = new QHBoxLayout();
label->setText("Random String");
layout->addWidget(label);
setLayout(layout);    

Таблица стилей предназначена для виджета, в который добавлен QLabel.

Строка "Random String" не отображается внутри метки.

Пожалуйста помоги.


person Sadaab    schedule 10.10.2014    source источник
comment
1) У вас опечатка в коде - должно быть не QLable, а QLabel. 2) Вы пробовали это с самым простым проектом, только с этим кодом, больше ничего? Я только что попробовал это, и это работает очень хорошо для меня.   -  person Googie    schedule 10.10.2014
comment
Извините за опечатку... Похоже, макет не работает в моем проекте. Поэтому я создаю экземпляр Qlabel внутри родительского класса и устанавливаю его положение и размер с помощью методов setsize() и move() соответственно. Теперь он работает хорошо.   -  person Sadaab    schedule 14.10.2014


Ответы (1)


В вашем коде опечатка, это QLabel, не QLable...

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

Я сделал небольшой тест этого класса:

mynewwidget.h

#ifndef MYNEWWIDGET_H
#define MYNEWWIDGET_H

#include <QWidget>

class MyNewWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyNewWidget(QWidget *parent = 0);
};

#endif // MYNEWWIDGET_H

mynewwidget.cpp

#include "mynewwidget.h"

#include <QHBoxLayout>
#include <QLabel>

MyNewWidget::MyNewWidget(QWidget *parent) :
    QWidget(parent)
{
    setStyleSheet( "QWidget{ background-color : rgba( 160, 160, 160, 255); border-radius : 7px;  }" );
    QLabel *label = new QLabel(this);
    QHBoxLayout *layout = new QHBoxLayout();
    label->setText("Random String");
    layout->addWidget(label);
    setLayout(layout);
}

И результат

http://i.imgur.com/G6OMHZX.png

что я предполагаю, что это то, что вы хотите...

person Iuliu    schedule 10.10.2014
comment
Извините за опечатку... Похоже, макет не работает в моем проекте. Поэтому я создаю экземпляр Qlabel внутри родительского класса и устанавливаю его положение и размер с помощью методов setsize() и move() соответственно. Теперь он работает хорошо. - person Sadaab; 14.10.2014