Login
Immer anmelden
SSL Login

 
Newsletter
Werbung
Shopping
International Shopping
 
 


Yatego Shopping bei über 10000 Händlern und über
3 Mio. Artikel.


Linux

:

Linux-Bücher

Handy
Shop

  und Computer.

Viele Services

:

Apple iPad Reader,


Ratgeber,

 

Techniktops,

 

Yatego Clicks

  & über 3000

Gutscheine.

 
So, 2. April 2006, 00:00

Entwicklung von Applikationen in Qt 4.0, Teil 2

QMenuBar *menu_bar = menuBar();
QAction *file_menu_action = new QAction(menu_bar);
file_menu_action->setText("&File");
QMenu *file_menu = new QMenu(menu_bar);
file_menu_action->setMenu(file_menu);
menu_bar->addAction(file_menu_action);

file_menu und file_menu_action werden als Kinder der Menüleiste der Applikation erzeugt, wodurch wir uns um deren Deallokation nicht kümmern müssen. Man soll das Hinzufügen von Kindern im Baum von QObject-Elementen nicht mit dem Hinzufügen von Aktionen zu einem Widget verwechseln. Zum Schluss fügen wir unsere Aktionen zu file_menu hinzu.

Listing 9. Konstruktor der Klasse MainWindow, mainwindow.cpp v4

MainWindow::MainWindow(QWidget *parent)
 : QMainWindow(parent)
{
 m_dir_model = new DirModel(this);
 m_left_widget = new DirWidget(m_dir_model);
 m_right_widget = new DirWidget(m_dir_model);
 QSplitter *splitter = new QSplitter(this);
 splitter->addWidget(m_left_widget);
 splitter->addWidget(m_right_widget);
 setCentralWidget(splitter);
 m_jump_to_home_action
 = new QAction(QIcon(":/home.png"), tr("&Home"), this);
 connect(m_jump_to_home_action, SIGNAL(triggered()),
 this, SLOT(jumpToHome()));
 m_jump_to_parent_action
 = new QAction(QIcon(":/up.png"), tr("&Parent"), this);
 connect(m_jump_to_parent_action, SIGNAL(triggered()),
 this, SLOT(jumpToParent()));
 m_quit_action = new QAction(QIcon(":/quit.png"), tr("&Quit"), this);
 connect(m_quit_action, SIGNAL(triggered()),
 this, SLOT(close()));
 QMenu *file_menu = menuBar()->addMenu(tr("&File"));
 file_menu->addAction(m_quit_action);
 QMenu *dir_menu = menuBar()->addMenu(tr("&Directory"));
 dir_menu->addAction(m_jump_to_home_action);
 dir_menu->addAction(m_jump_to_parent_action);
 QToolBar *tool_bar = addToolBar(tr("Directory"));
 tool_bar->addAction(m_jump_to_home_action);
 tool_bar->addAction(m_jump_to_parent_action);
}

Es bleibt noch eine Bemerkung, die den Aktionnamen betrifft. Der Name kann das '&'-Zeichen vor einem der Buchstaben enthalten. Die Klassen QMenuBar und QMenu zeigen diesen Buchstaben unterstrichen an, und wenn sie den Fokus besitzen, hat das Drücken des Buchstabens die Wahl der Aktion zur Folge. In unserem Fall wird das Menü File geöffnet.

Zusammenfassung

Unsere Applikation ermöglicht, Verzeichnisse durchzusuchen, aber sie hat immer noch keine funktionalen Elemente wie Verschieben und Kopieren von Dateien. Im nächsten Monat wird ein Artikel über diese Eigenschaft erscheinen.

Über den Autor

Der Autor arbeitet bei der Firma Trolllech. Er beschäftigt sich mit der Entwicklung der Applikation Qt Designer und vieler anderen Qt-Klassen.

Lizenz

Dieser Artikel wurde im Magazin Programmieren unter Linux publiziert. Alle Rechte vorbehalten. Kostenlose Vervielfältigung und Vertreiben des Artikels ist in unveränderter Form gestattet.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Newsletter
Neue Nachrichten