Skip to content

Commit fb7c15b

Browse files
committed
add ListWidget example
1 parent b6dddeb commit fb7c15b

File tree

6 files changed

+74
-0
lines changed

6 files changed

+74
-0
lines changed

Qt.Widgets/CommonControls/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ add_subdirectory(DoubleSpinBox)
1111
add_subdirectory(Label)
1212
add_subdirectory(LCDNumber)
1313
add_subdirectory(LineEdit)
14+
add_subdirectory(ListWidget)
1415
add_subdirectory(PictureBox)
1516
add_subdirectory(PictureBox2)
1617
add_subdirectory(ProgressBar)

Qt.Widgets/CommonControls/CommonControls.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ SUBDIRS = \
66
Label \
77
LCDNumber \
88
LineEdit \
9+
ListWidget |
910
PictureBox \
1011
PictureBox2 \
1112
ProgressBar \
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
cmake_minimum_required(VERSION 3.1)
2+
3+
# Project
4+
project(ListWidget)
5+
find_package(Qt5Widgets CONFIG REQUIRED)
6+
7+
# Options
8+
set(CMAKE_AUTOMOC ON)
9+
set(CMAKE_AUTORCC ON)
10+
set(CMAKE_AUTOUIC ON)
11+
set(CMAKE_CXX_STANDARD 17)
12+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
13+
14+
# Application
15+
add_executable(ListWidget WIN32 MACOSX_BUNDLE src/ListWidget.cpp src/ListWidget.h)
16+
target_link_libraries(ListWidget Qt5::Widgets)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CONFIG += c++17
2+
QT = widgets
3+
SOURCES = src/ListWidget.cpp
4+
HEADERS = src/ListWidget.h
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include <QApplication>
2+
#include "ListWidget.h"
3+
4+
using namespace Examples;
5+
6+
int main(int argc, char *argv[]) {
7+
QApplication application(argc, argv);
8+
Window1 window1;
9+
window1.show();
10+
return application.exec();
11+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#pragma once
2+
#include <QFrame>
3+
#include <QHBoxLayout>
4+
#include <QListWidget>
5+
#include <QMainWindow>
6+
7+
namespace Examples {
8+
class Window1 : public QMainWindow {
9+
Q_OBJECT
10+
public:
11+
Window1() {
12+
layout.addWidget(&listWidgetLeft);
13+
layout.addWidget(&listWidgetRight);
14+
15+
listWidgetLeft.addItems({"draw", "cut", "paste", "delete", "open", "close", "remove", "edit", "find", "increment", "decrement", "write", "read", "post", "build", "make", "release", "create", "choose", "erase"});
16+
listWidgetLeft.setCurrentRow(0);
17+
connect(&listWidgetLeft, &QListWidget::doubleClicked, [&] {
18+
listWidgetRight.addItem(listWidgetLeft.currentItem()->text());
19+
listWidgetRight.setCurrentRow(0);
20+
delete listWidgetLeft.currentItem();
21+
});
22+
23+
listWidgetRight.setSortingEnabled(true);
24+
connect(&listWidgetRight, &QListWidget::doubleClicked, [&] {
25+
listWidgetLeft.addItem(listWidgetRight.currentItem()->text());
26+
listWidgetLeft.setCurrentRow(0);
27+
delete listWidgetRight.currentItem();
28+
});
29+
30+
setCentralWidget(&frame);
31+
setWindowTitle("List widget example");
32+
resize(360, 240);
33+
}
34+
35+
private:
36+
QFrame frame;
37+
QHBoxLayout layout {&frame};
38+
QListWidget listWidgetLeft;
39+
QListWidget listWidgetRight;
40+
};
41+
}

0 commit comments

Comments
 (0)