-
Notifications
You must be signed in to change notification settings - Fork 1
/
addDelListWidget.py
54 lines (41 loc) · 1.57 KB
/
addDelListWidget.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QListWidget, \
QLabel, QSizePolicy, QSpacerItem, QHBoxLayout, QPushButton, QDialog
from inputDialog import InputDialog
class AddDelListWidget(QWidget):
def __init__(self, lbl):
super().__init__()
self.__initUi(lbl)
def __initUi(self, lbl):
self.__listWidget = QListWidget()
self.__addRowBtn = QPushButton('Add')
self.__delRowBtn = QPushButton('Delete')
self.__addRowBtn.clicked.connect(self.__add)
self.__delRowBtn.clicked.connect(self.__delete)
lay = QHBoxLayout()
lay.addWidget(QLabel(lbl))
lay.addSpacerItem(QSpacerItem(10, 10, QSizePolicy.MinimumExpanding))
lay.addWidget(self.__addRowBtn)
lay.addWidget(self.__delRowBtn)
lay.setAlignment(Qt.AlignRight)
lay.setContentsMargins(0, 0, 0, 0)
menuWidget = QWidget()
menuWidget.setLayout(lay)
lay = QVBoxLayout()
lay.addWidget(menuWidget)
lay.addWidget(self.__listWidget)
lay.setContentsMargins(0, 0, 0, 0)
self.setLayout(lay)
def getListWidget(self):
return self.__listWidget
def __add(self):
dialog = InputDialog('Add', '', self)
reply = dialog.exec()
if reply == QDialog.Accepted:
text = dialog.getText()
self.__listWidget.addItem(text)
def __delete(self):
try:
self.__listWidget.takeItem(self.__listWidget.row(self.__listWidget.currentItem()))
except Exception as e:
print(e)