Noob - Fragen

Alles rund um die Programmierung mit Qt
Antworten
zwuckel
Beiträge: 2
Registriert: 1. Juli 2007 21:01

Noob - Fragen

Beitrag von zwuckel »

Hallo,

ich bin noch blutiger Anfänger in Qt und habe einige Fragen.

Wäre toll, wenn mir jemand weiterhelfen könnte.

Einmal:
Welche Schritte muss man machen, um einen neuen Menüeintrag in einem QT Programm zu erstellen?

Und:
Wie mache ich es, dass ein Qt Programm sein Fenster neu zeichnet, wenn sich der Datenbestand geändert hat?


Danke schonmal!
Das zwuckelchen
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Glaubst Du ernsthaft auf so ne Frage bekommst Du hier ne besser Antwort als in der Dokumentation von QT?

Is nicht böse gemeint, aber evtl. solltest Du erstmal dort anfangen.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Fabeltier
Beiträge: 33
Registriert: 3. Juni 2007 04:46
Wohnort: München

Beitrag von Fabeltier »

Hi,
Also ich mach das mit dem Menu immer so (s.u.), is eigentlich recht selbsterklaerend. Ich denke QMainWindow's zu benutzen ist da der gaengige Weg. Afaik braucht man sich bei den QWidgets nicht um Garbage Collection zu kuemmern, daher kein Dtor, bin aber selber auch erst am lernen.

Fenster neuzeichnen? Ich denke es kommt drauf an, was Du da eig genau machen willst. Um nen Text von nem Widget zu aendern is das nich notwendig, vieles laeuft bspw. mit QWidget::hide(), QWidget::setVisible(bool) oder zB auch mit QStackedLayout. Kommt halt drauf an, welches Layoutproblem Du nun konkret hast.

Code: Alles auswählen

// XYZ.hpp
class QAction;
class QMenu;
class QMainWindow;
// ...

class XYZ : public QMainWindow
{

// ...

private slots:
	void slotLoad();
	void slotSave();
	void slotCopy();
	void slotPaste();
// ...

private:
	// menus
	QMenu *menuFile;
	QMenu *menuEdit;

	// actions
	QAction *actLoad;
	QAction *actSave;
	QAction *actCopy;
	QAction *actPaste;

	// functions
	void initGUI();
	void createActions();
	void createMenus();
	// ...

public:
	XYZ();

};



// XYZ.cpp
#include <QtGui>
#include "XYZ.hpp"
// ...

XYZ::XYZ()
{
	initGUI();
};

void XYZ::initGUI()
{
// ...
	createActions();
	createMenus();
// ...
};

void XYZ::createActions()
{
	actLoad = new QAction(tr("&Laden")); 
	actLoad->setIcon(QIcon(":/img/laden.png")); // fuer Icons
	actLoad->setShortcut(tr("Ctrl+L")); // short cut
	connect(actLoad, SIGNAL(triggered()), this, SLOT(slotLoad()));
	
	actSave = new QAction(tr("&Speichern"));
	connect(actSave, SIGNAL(triggered()), this, SLOT(slotSave()));
	
	actCopy = new QAction(tr("Kopieren"));
	connect(actCopy, SIGNAL(triggered()), this, SLOT(slotCopy()));
	
	actPaste = new QAction(tr("Einfuegen"));
	connect(actPaste, SINGAL(triggered()), this, SLOT(slotPaste()));
};

void XYZ::createMenus()
{
	menuFile = menuBar()->addMenu(tr("&Datei"));
	menuFile->addAction(actLoad);
	menuFile->addSeparator();
	menuFile->addAction(actSave);
	
	menuEdit = menuBar()->addMenu(tr("&Bearbeiten"));
	menuEdit->addAction(actCopy);
	menuEdit->addAction(actPaste);	
};

void XYZ::slotLoad()
{
// ...
};

void XYZ::slotSave()
{
// ...
};

void XYZ::slotCopy()
{
// ...
};

void XYZ::slotPaste()
{
// ...
};
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

@zwuckel: Schau dir mal in Ruhe die Beispiele in der Dokumentation durch und wenn du dann noch Fragen hast, dann frag nochmal...
zwuckel
Beiträge: 2
Registriert: 1. Juli 2007 21:01

Beitrag von zwuckel »

Vielen Dank für die Antworten!
Besonderes Danke an Fabeltier!

Ich werde mich noch mal der Dokumentation widmen (obwohl ich die für Anfänger nicht sehr verständlich finde. ABer das mag an mir liegen)
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

zwuckel hat geschrieben:Ich werde mich noch mal der Dokumentation widmen (obwohl ich die für Anfänger nicht sehr verständlich finde. ABer das mag an mir liegen)
Die Doku von Qt ist hervorragend. Also, wenn du sie nicht verständlich findest, dann fehlen dir eventuell C++ Kentnisse. Diese sind Voraussetzung, um mit Qt etwas erreichen zu können...
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Also ich finde die Doku für Qt Klasse, im Gegensatz zur Doku für GTK+ :wink:
Gruß, Peter
Antworten