Seite 1 von 1

Layoutkampf: Buttonskalierung

Verfasst: 10. April 2009 14:21
von Souljumper
hi,

hab ein paar Probleme mit den Layouts. Hab hier derzeit diese Situation:
http://s105.photobucket.com/albums/m239 ... t=bild.jpg
(nutze qt 4.4.1)
Die Button im oberen Fenster würde ich gerne höher haben, damit der Platz der GroupBox besser ausgenuttz wird. Hab das mit dem GridLayout probiert, bin da aber zu keinem Ergebnis gekommen.

Wie krieg ich das richtig hin, dass die buttons in die höhe skaliert werden?

hier mein code:

header

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QGroupBox>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QPushButton>
#include <QLabel>
#include <QIcon>

class MainWindow : public QWidget
{
	Q_OBJECT
	
	public:
		MainWindow();
	private:
		QGridLayout		* mainWinLay;
		QGridLayout 	* grpBoxLay;
		QGroupBox 		* menuBox;
		QPushButton		* searchButton;
		QPushButton		* insertButton;
		QLabel			* dummy;
};

#endif
cpp

Code: Alles auswählen

MainWindow::MainWindow()
{
	setGeometry(30, 50, 1024, 768);
	setWindowTitle(tr("Titeltext"));

	mainWinLay		= new QGridLayout;	
	grpBoxLay		= new QGridLayout;
	menuBox 		= new QGroupBox("Menu");
	searchButton	= new QPushButton(QIcon("lupe.gif"),"Suchen");
	insertButton	= new QPushButton("Einfuegen");
	dummy			= new QLabel("ich bin ein Fuelllabel");
	
	/*
	|
	*/
	
	grpBoxLay->addWidget(searchButton, 0, 0, 2, 2); //2 reihen breit, 2 reihen hoch  - tut es aber net :(
	grpBoxLay->addWidget(insertButton, 0, 2, 2, 2);
	menuBox->setLayout(grpBoxLay);
	
	mainWinLay->addWidget(menuBox, 0, 0);
	mainWinLay->addWidget(dummy	 , 1, 0, 5, 1);
	
	setLayout(mainWinLay);
	
	show();
}
noch eine zweite frage, aus java kenn ich den pack()-Befehl

Causes this Window to be sized to fit the preferred size and layouts of its subcomponents.

gibts sowas auch für die Qt, konnte sowas in der doku nicht finden, evtl hab ich nach dem falschen schlagwort gesucht?

Verfasst: 10. April 2009 18:01
von Christian81
Buttons höher ziehen? Das sieht bestimmt nicht gut aus - aber egal.
Den Buttons einfach eine größere minmale Höhe zuweisen.

Verfasst: 10. April 2009 18:26
von Souljumper
sieht wirklich nicht so dolle aus.

Noch eine Frage. Kann man irgendwie das Fenster automatsich zusammenpacken, damit das äußere Widget auf die Größe reduziert wird die minimal für die inneren Komponenten nötig ist?

In java gibt es da den pack() - Befehl. gibt es sowas auch für die Qt?

Wie kann ich das fenster zentrieren in der bildschirmmitte?

Verfasst: 10. April 2009 18:55
von Christian81
Ich würde sagen - beschäftige dich mal mit dem Qt Designer - dort kannst Du experimentieren. Es sollte ohne weiteres möglich sein.

Verfasst: 11. April 2009 18:46
von Souljumper
Christian81 hat geschrieben:Ich würde sagen - beschäftige dich mal mit dem Qt Designer - dort kannst Du experimentieren. Es sollte ohne weiteres möglich sein.
ui - der designer erschlägt mich etwas. ich komm da noch weniger weit als beim per-hand programmieren.
wie füge ich den im im designer z.b. einem button eine ressource(in diesem fall ein icon) hinzu?

Verfasst: 12. April 2009 08:12
von franzf
Souljumper hat geschrieben:ui - der designer erschlägt mich etwas. ich komm da noch weniger weit als beim per-hand programmieren.
wie füge ich den im im designer z.b. einem button eine ressource(in diesem fall ein icon) hinzu?
Neben dem Designer gibt es noch ein anderes Tool - den Assistant ;)
Hier findest du die Doku zum designer. Da findest du auch einen Link, wie man Resourcen einbindet.

Verfasst: 12. April 2009 14:52
von Souljumper
danke soweit, jetzt komm ich damit besser zurecht.

wenn ich ein qtableview hab, wie kann ich da im designer spalten definieren und die überschriften anzeigen. am besten auch 2-3 Zeilen Testdaten eintragen?
bei den anderen views geth das mit den testdaten automatisch, bei dieser komischweise nicht.

Verfasst: 14. April 2009 08:23
von pfid
Souljumper hat geschrieben:danke soweit, jetzt komm ich damit besser zurecht.

wenn ich ein qtableview hab, wie kann ich da im designer spalten definieren und die überschriften anzeigen. am besten auch 2-3 Zeilen Testdaten eintragen?
bei den anderen views geth das mit den testdaten automatisch, bei dieser komischweise nicht.
Bitte lass dir nicht alles von uns vorkauen/erklären. Die Doku ist ausführlich genug, und zu jeder deiner Fragen sollte es entsprechende Tutorials/Demos geben:

http://doc.trolltech.com/4.5/tutorials.html
http://doc.trolltech.com/4.5/examples.html
http://doc.trolltech.com/4.5/demos.html

Sowie

http://doc.trolltech.com/4.5/classes.html
und
http://doc.trolltech.com/4.5/index.html