src/eric7/MicroPython/BluetoothDialogs/BluetoothScanWindow.py

Mon, 22 Apr 2024 18:23:20 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 22 Apr 2024 18:23:20 +0200
branch
eric7
changeset 10690
fab36645aa7d
parent 10621
f5631f40c4d9
child 11090
f5f5f5803935
permissions
-rw-r--r--

Changed the source code and the source code documentation to improve the indication of unused method/function arguments.

9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10090
diff changeset
3 # Copyright (c) 2023 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to scan for Bluetooth devices.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import Qt, pyqtSlot
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QHeaderView, QTreeWidgetItem, QWidget
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7.EricWidgets import EricMessageBox
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from .Ui_BluetoothScanWindow import Ui_BluetoothScanWindow
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class BluetoothScanWindow(QWidget, Ui_BluetoothScanWindow):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing a dialog to scan for Bluetooth devices.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 def __init__(self, device, parent=None):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param device reference to the connected device
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @type BaseDevice
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @param parent reference to the parent widget (defaults to None)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @type QWidget (optional)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 super().__init__(parent)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.setupUi(self)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 windowFlags = self.windowFlags()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 windowFlags |= Qt.WindowType.Window
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 windowFlags |= Qt.WindowType.WindowContextHelpButtonHint
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.setWindowFlags(windowFlags)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__device = device
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.devicesList.setColumnCount(4)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.devicesList.headerItem().setText(3, "")
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.scanButton.clicked.connect(self.scanDevices)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.devicesList.sortByColumn(0, Qt.SortOrder.AscendingOrder)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @pyqtSlot()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def scanDevices(self):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Public slot to ask the device for a Bluetooth scan and display the result.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.devicesList.clear()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.statusLabel.clear()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.scanButton.setEnabled(False)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 with EricOverrideCursor():
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 scanResults, error = self.__device.getDeviceScan(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 timeout=self.durationSpinBox.value()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 )
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.scanButton.setEnabled(True)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if error:
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 EricMessageBox.warning(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self,
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.tr("Bluetooth Scan"),
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.tr(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """<p>The scan for available devices failed.</p>"""
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """<p>Reason: {0}</p>"""
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 ).format(error),
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 )
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 else:
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
76 self.statusLabel.setText(
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
77 self.tr("<p>Detected <b>%n</b> device(s).</p>", "", len(scanResults))
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
78 )
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 for res in scanResults.values():
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 name = res.name
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 if not name:
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 name = self.tr("N/A")
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 itm = QTreeWidgetItem(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.devicesList, [name, res.address, str(res.rssi)]
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 )
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 itm.setTextAlignment(1, Qt.AlignmentFlag.AlignHCenter)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 itm.setTextAlignment(2, Qt.AlignmentFlag.AlignHCenter)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
89 for serviceID, serviceName, isComplete in res.services:
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
90 if len(serviceID) == 6:
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 bits = 16
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
92 elif len(serviceID) == 10:
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 bits = 32
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 else:
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 bits = 128
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 template = (
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
97 self.tr("Complete {0}-bit Service UUID: {1}{2}")
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 if isComplete
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
99 else self.tr("Incomplete {0}-bit Service UUID: {1}{2}")
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 )
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
101 citm = QTreeWidgetItem(
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
102 itm,
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
103 [
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
104 template.format(
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
105 bits,
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
106 serviceID,
10621
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
107 (
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
108 self.tr(" - {0}").format(serviceName)
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
109 if serviceName
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
110 else ""
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
111 ),
10090
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
112 )
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
113 ],
8be7dd9460c5 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9859
diff changeset
114 )
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
115 citm.setFirstColumnSpanned(True)
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
117 seenMIds = []
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 for mid, _, mname in res.manufacturer(withName=True):
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
119 if mid not in seenMIds:
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
120 citm = QTreeWidgetItem(
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
121 itm,
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
122 [
10621
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
123 (
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
124 self.tr("Manufacturer ID: 0x{0:x} - {1}").format(
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
125 mid, mname
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
126 )
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
127 if bool(mname)
f5631f40c4d9 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
128 else self.tr("Manufacturer ID: 0x{0:x}").format(mid)
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
129 )
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
130 ],
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
131 )
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
132 citm.setFirstColumnSpanned(True)
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
133 seenMIds.append(mid)
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
134
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
135 txPower = res.txPower
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
136 if txPower:
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
137 citm = QTreeWidgetItem(
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
138 itm, [self.tr("Tx Power Level [dBm]: {0}").format(txPower)]
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 )
9859
829c1edbf253 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
140 citm.setFirstColumnSpanned(True)
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.__resizeColumns()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 self.__resort()
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 def __resort(self):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 Private method to resort the devices list.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 self.devicesList.sortItems(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.devicesList.sortColumn(),
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 self.devicesList.header().sortIndicatorOrder(),
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 )
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 def __resizeColumns(self):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 Private method to resize the columns of the result list.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 self.devicesList.header().resizeSections(
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 QHeaderView.ResizeMode.ResizeToContents
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 )
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 self.devicesList.header().setStretchLastSection(True)

eric ide

mercurial