6#include "../include/mainwindow.h"
8MainWindow::MainWindow()
10 QMenu *fileMenu =
new QMenu(tr(
"&File"));
12 QAction *quitAction = fileMenu->addAction(tr(
"E&xit"));
13 quitAction->setShortcut(tr(
"Ctrl+Q"));
15 QMenu *itemsMenu =
new QMenu(tr(
"&Items"));
17 insertAction = itemsMenu->addAction(tr(
"&Insert Item"));
18 removeAction = itemsMenu->addAction(tr(
"&Remove Item"));
19 QAction *ascendingAction = itemsMenu->addAction(tr(
"Sort in &Ascending Order"));
20 QAction *descendingAction = itemsMenu->addAction(tr(
"Sort in &Descending Order"));
22 menuBar()->addMenu(fileMenu);
23 menuBar()->addMenu(itemsMenu);
26 QListWidget *listWidget =
new QListWidget(
this);
29 listWidget =
new QListWidget(
this);
30 listWidget->setSelectionMode(QAbstractItemView::SingleSelection);
32 connect(quitAction, &QAction::triggered,
this, &QWidget::close);
33 connect(ascendingAction, &QAction::triggered,
this, &MainWindow::sortAscending);
34 connect(descendingAction, &QAction::triggered,
this, &MainWindow::sortDescending);
35 connect(insertAction, &QAction::triggered,
this, &MainWindow::insertItem);
36 connect(removeAction, &QAction::triggered,
this, &MainWindow::removeItem);
37 connect(listWidget, &QListWidget::currentItemChanged,
38 this, &MainWindow::updateMenus);
41 updateMenus(listWidget->currentItem());
43 setCentralWidget(listWidget);
44 setWindowTitle(tr(
"List Widget"));
50 new QListWidgetItem(tr(
"Oak"), listWidget);
51 new QListWidgetItem(tr(
"Fir"), listWidget);
52 new QListWidgetItem(tr(
"Pine"), listWidget);
55 new QListWidgetItem(tr(
"Birch"), listWidget);
58 new QListWidgetItem(tr(
"Hazel"), listWidget);
61 new QListWidgetItem(tr(
"Redwood"), listWidget);
64 new QListWidgetItem(tr(
"Sycamore"), listWidget);
65 new QListWidgetItem(tr(
"Chestnut"), listWidget);
66 new QListWidgetItem(tr(
"Mahogany"), listWidget);
73 listWidget->sortItems(Qt::AscendingOrder);
80 listWidget->sortItems(Qt::DescendingOrder);
86 if (!listWidget->currentItem())
89 QString itemText = QInputDialog::getText(
this, tr(
"Insert Item"),
90 tr(
"Input text for the new item:"));
92 if (itemText.isNull())
96 QListWidgetItem *newItem =
new QListWidgetItem;
97 newItem->setText(itemText);
100 int row = listWidget->row(listWidget->currentItem());
103 listWidget->insertItem(row, newItem);
106 QString toolTipText = tr(
"Tooltip:") + itemText;
107 QString statusTipText = tr(
"Status tip:") + itemText;
108 QString whatsThisText = tr(
"What's This?:") + itemText;
111 newItem->setToolTip(toolTipText);
112 newItem->setStatusTip(toolTipText);
113 newItem->setWhatsThis(whatsThisText);
119 listWidget->takeItem(listWidget->row(listWidget->currentItem()));
122void MainWindow::updateMenus(QListWidgetItem *current)
124 insertAction->setEnabled(current != 0);
125 removeAction->setEnabled(current != 0);