Seite 1 von 1

QWdiget in QApplication erstellen, möglichst klein

Verfasst: 1. Oktober 2007 11:20
von Nash
Hi Ho,
ich habe eine Klasse QApplication als einstiegspunkt für mein QtApp.
und in diesem erstelle ich mit ein Widget, zum initialisieren meiner Anwendung.

diese Widget sollte unsichtbar sein und so klein wie möglich 1x1 pixel.

Code: Alles auswählen

m_InvisibleRenderWidget = new QWidget;
	if(!m_InvisibleRenderWidget)
	{
		LOGD("Could not create invisble RenderWidget!");
		return;
	}
	
	m_InvisibleRenderWidget->setVisible(false);
	m_InvisibleRenderWidget->setFixedSize(1,1);
nun ist es so das dieses Fenster leider aus welchen gründen auch immer 104x1 pixel groß ist, obwohl ich die größe auf 1,1 festgelegt habe.

kann mir jemand sagen warum, und wie man das lösen könnte?

Verfasst: 1. Oktober 2007 12:16
von upsala
Den Sinn eines 1x1-Pixel großen Widgets, noch dazu auf dem Desktop muß man nicht wirklich verstehen, oder?

Wahrscheinlich hast du sämtliche Deko-Elemente noch eingeschaltet, schalte diese mal aus. (WindowFlags)

Verfasst: 1. Oktober 2007 13:37
von Nash
m_InvisibleRenderWidget = new QWidget(0, Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::FramelessWindowHint);

damit komme ich aber immer noch auf ein Widget mit 49 Pixeln größe
QRect t = m_InvisibleRenderWidget->geometry();
t = {x1=0 y1=0 x2=49 y2=0}

Verfasst: 1. Oktober 2007 13:46
von Nash
ich brauch einfach ein Window Hanlde zum initialisieen der 3D engine.

unsichtbar

Verfasst: 1. Oktober 2007 14:08
von MichaelV
Hi,

schieb es doch einfach aus dem sichtbaren bereich.

Michael

Verfasst: 1. Oktober 2007 18:56
von Burgpflanze
Solange du nicht

Code: Alles auswählen

show()
ausführst, wird dein Widget sowieso nicht angezeigt, also kannst du dir

Code: Alles auswählen

setVisible(false)
eigentlich sparen, genau wie

Code: Alles auswählen

setFixedSize(1,1)
,da die Größe eines unsichtbaren Widgets eigentlich egal sein kann.