QRadioButton (mit Icon, ohne Text)

Alles rund um die Programmierung mit Qt
Antworten
Maha
Beiträge: 6
Registriert: 5. September 2007 17:45

QRadioButton (mit Icon, ohne Text)

Beitrag von Maha »

Hallo,
ich brauche ein wenig Rat:

Wenn ich ein QRadioButton ohne Text aber mit Icon anlege, schneidet es vom Icon rechts senkrecht einen Teil weg.
argRB = new QRadioButton(this);
argRB->setIcon(QIcon(":/images/arg1616.png"));

oder
argRB = new QRadioButton("", this);
argRB->setIcon(QIcon(":/images/arg1616.png"));

Wenn ich aber Taxt mitübergebe, wird das Icon vollständig und korrekt abgebildet:
argRB = new QRadioButton("irgendwas", this);
argRB->setIcon(QIcon(":/images/arg1616.png"));

Ich möchte einen QRadiobutton ohne Text und nur mit Icon.
Ist das nicht vorgesehen?

Danke
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

setIconSize() und/oder setMinimumSize()
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Maha
Beiträge: 6
Registriert: 5. September 2007 17:45

Beitrag von Maha »

Danke,
nun habe ich folgendes festgestellt:

Mein Icon das ich einbinde hat die Abmessungen 16x16 Pixel.

Gebe ich die Größe vor mit

Code: Alles auswählen

argRB->setIconSize(QSize(16, 16));
kommt es zu dem gleichen oben beschriebenen Problem.

Wähle ich aber die QSize 2 Pixel größer, als das Icon groß ist

Code: Alles auswählen

argRB->setIconSize(QSize(18, 18));
wird das Icon komplett dargestellt.

Gibt es dafür eine Erklärung?

Danke schonmal
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Eine Erklärung kann ich nicht liefern. Vielleicht liegt es am Layout, aber das ist reine Vermutung.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Maha
Beiträge: 6
Registriert: 5. September 2007 17:45

Beitrag von Maha »

Die liegen horizontal in einem Gridlayout mit Spacing 2

Code: Alles auswählen

enemyGB = new QGroupBox("Gegner", this);
enemyGL = new QGridLayout(enemyGB);
enemyGL->setSpacing(2);
	
argRB = new QRadioButton(enemyGB);
argRB->setIcon(QIcon(":/images/arg1616.png"));
argRB->setIconSize(QSize(18, 18));
connect(argRB, SIGNAL(clicked(bool)), this, SLOT(setFrac()));
...
enemyGL->addWidget(argRB, 0, 0, 1, 1, Qt::AlignLeft | Qt::AlignTop);
enemyGL->addWidget(bufRB, 0, 1, 1, 1, Qt::AlignLeft | Qt::AlignTop);
enemyGL->addWidget(stxRB, 0, 2, 1, 1, Qt::AlignLeft | Qt::AlignTop);
...
enemyGB->setLayout(enemyGL);
Gruß Maha
Antworten