forked from cr1901/scanwidget
/
main.py
69 lines (53 loc) · 1.92 KB
/
main.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import asyncio
import atexit
import logging
from quamash import QtCore, QApplication, QEventLoop, QtWidgets
from scanwidget import ScanWidget
from scientific_spinbox import ScientificSpinBox
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, app, server):
QtWidgets.QMainWindow.__init__(self)
self.exit_request = asyncio.Event()
def closeEvent(self, *args):
self.exit_request.set()
def main():
logging.basicConfig(level=logging.INFO)
app = QApplication([])
loop = QEventLoop(app)
asyncio.set_event_loop(loop)
atexit.register(loop.close)
win = MainWindow(app, None)
container = QtWidgets.QWidget(win)
layout = QtWidgets.QGridLayout()
container.setLayout(layout)
scanner = ScanWidget()
scanner.setFocusPolicy(QtCore.Qt.StrongFocus)
layout.addWidget(scanner, 0, 0, -1, 1)
spinbox = ScientificSpinBox()
spinbox.setFocusPolicy(QtCore.Qt.StrongFocus)
spinbox.setStyleSheet("QDoubleSpinBox {color:blue}")
spinbox.setMinimumSize(110, 0)
layout.addWidget(spinbox, 0, 1)
scanner.startChanged.connect(spinbox.setValue)
spinbox.valueChanged.connect(scanner.setStart)
scanner.setStart(-100)
spinbox = QtWidgets.QSpinBox()
spinbox.setFocusPolicy(QtCore.Qt.StrongFocus)
spinbox.setMinimum(1)
spinbox.setMaximum((1 << 31) - 1)
layout.addWidget(spinbox, 1, 1)
scanner.numChanged.connect(spinbox.setValue)
spinbox.valueChanged.connect(scanner.setNum)
scanner.setNum(11)
spinbox = ScientificSpinBox()
spinbox.setFocusPolicy(QtCore.Qt.StrongFocus)
spinbox.setStyleSheet("QDoubleSpinBox {color:red}")
layout.addWidget(spinbox, 2, 1)
scanner.stopChanged.connect(spinbox.setValue)
spinbox.valueChanged.connect(scanner.setStop)
scanner.setStop(200)
win.setCentralWidget(container)
win.show()
loop.run_until_complete(win.exit_request.wait())
if __name__ == "__main__":
main()