Seite 1 von 1

QLabel in QCheckBox

Verfasst: 18. März 2013 16:10
von Senifor
Hallo zusammen,

ich würde gerne den Text in meiner Checkbox am Fensterrand umbrechen. Leider bietet QCheckbox kein setWordWrap wie QLabel. Jetzt dachte ich, ich leite mir eine Klasse von QCheckBox ab und füge ein QLabel ein:

Code: Alles auswählen

MyCheckBox::MyCheckBox(QWidget *parent) :
    QCheckBox(parent)
{
    [...]

    QString text (ans->get_content().c_str());


    QLayout *layout = this->layout();
   [...]

//m_label ist vom Typ QLabel
    m_label.setWordWrap(true);
   m_label.setText(text);

    layout->addWidget(&m_label);
}
Leider funktioniert das nicht besonders gut. Der Text wird nicht richtig dargestellt (siehe Anhang). Weiß jemand, was ich falsch mache, oder wie ich eine Checkbox mit WordWrap erstelle ?
Ich bin noch Anfänger.

Vielen Dank.

Senifor

Re: QLabel in QCheckBox

Verfasst: 19. März 2013 15:38
von russkij
Hi,

du kannst alternativ eigene Checkbox mit Label basteln, so in etwa:

Code: Alles auswählen

class MyCheckBox : public QWidget
{
public:
   MyCheckBox(QWidget *parent) : QWidget(parent)
   {
      QHBoxLayout * layout = new QHBoxLayout(this);
      QCheckBox *chk = new QCheckBox(this);
      QLabel *lbl = new QLabel("blaaaa haha haha dadfds sdlfjlk sldakfjlksdajlk lsjdflkj sdlkjflks dflkjj sldkfjlksd flksdf lkjsdf lsdjlsdfal", this);
      lbl->setWordWrap(true);
      layout->addWidget(chk);
      layout->addWidget(lbl);
      layout->addStretch();
   }
};
gruß

Re: QLabel in QCheckBox

Verfasst: 20. März 2013 16:55
von Senifor
Hallo russkij,

vielen Dank für den Hinweis. Ich war so auf diese CheckBox fixiert, dass mir das nicht eingefallen ist.
Danke ....

Gruß, Senifor