Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
mainwindow.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4#include <QtWidgets>
5
6#include "../include/mainwindow.h"
7
8MainWindow::MainWindow()
9{
10 QMenu *fileMenu = new QMenu(tr("&File"));
11
12 QAction *quitAction = fileMenu->addAction(tr("E&xit"));
13 quitAction->setShortcut(tr("Ctrl+Q"));
14
15 QMenu *itemsMenu = new QMenu(tr("&Items"));
16
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"));
21
22 menuBar()->addMenu(fileMenu);
23 menuBar()->addMenu(itemsMenu);
24
25 //! [0]
26 QListWidget *listWidget = new QListWidget(this);
27 //! [0]
28
29 listWidget = new QListWidget(this);
30 listWidget->setSelectionMode(QAbstractItemView::SingleSelection);
31
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);
39
40 setupListItems();
41 updateMenus(listWidget->currentItem());
42
43 setCentralWidget(listWidget);
44 setWindowTitle(tr("List Widget"));
45}
46
47void MainWindow::setupListItems()
48{
49 //! [1]
50 new QListWidgetItem(tr("Oak"), listWidget);
51 new QListWidgetItem(tr("Fir"), listWidget);
52 new QListWidgetItem(tr("Pine"), listWidget);
53 //! [1]
54
55 new QListWidgetItem(tr("Birch"), listWidget);
56
57 //! [2]
58 new QListWidgetItem(tr("Hazel"), listWidget);
59 //! [2]
60
61 new QListWidgetItem(tr("Redwood"), listWidget);
62
63 //! [3]
64 new QListWidgetItem(tr("Sycamore"), listWidget);
65 new QListWidgetItem(tr("Chestnut"), listWidget);
66 new QListWidgetItem(tr("Mahogany"), listWidget);
67 //! [3]
68}
69
71{
72 //! [4]
73 listWidget->sortItems(Qt::AscendingOrder);
74 //! [4]
75}
76
78{
79 //! [5]
80 listWidget->sortItems(Qt::DescendingOrder);
81 //! [5]
82}
83
85{
86 if (!listWidget->currentItem())
87 return;
88
89 QString itemText = QInputDialog::getText(this, tr("Insert Item"),
90 tr("Input text for the new item:"));
91
92 if (itemText.isNull())
93 return;
94
95 //! [6]
96 QListWidgetItem *newItem = new QListWidgetItem;
97 newItem->setText(itemText);
98 //! [6]
99
100 int row = listWidget->row(listWidget->currentItem());
101
102 //! [7]
103 listWidget->insertItem(row, newItem);
104 //! [7]
105
106 QString toolTipText = tr("Tooltip:") + itemText;
107 QString statusTipText = tr("Status tip:") + itemText;
108 QString whatsThisText = tr("What's This?:") + itemText;
109
110 //! [8]
111 newItem->setToolTip(toolTipText);
112 newItem->setStatusTip(toolTipText);
113 newItem->setWhatsThis(whatsThisText);
114 //! [8]
115}
116
118{
119 listWidget->takeItem(listWidget->row(listWidget->currentItem()));
120}
121
122void MainWindow::updateMenus(QListWidgetItem *current)
123{
124 insertAction->setEnabled(current != 0);
125 removeAction->setEnabled(current != 0);
126}
void sortAscending()
void sortDescending()
void insertItem()
void removeItem()