diff --git a/tests/timeit/11.signals.slots.03.py b/tests/timeit/11.signals.slots.03.py index 408ab28b..9350156b 100644 --- a/tests/timeit/11.signals.slots.03.py +++ b/tests/timeit/11.signals.slots.03.py @@ -25,20 +25,23 @@ import sys, os import timeit -import random -import unicodedata sys.path.append(os.path.join(sys.path[0],'../..')) sys.path.append(os.path.join(sys.path[0],'.')) -import TermTk as ttk +# import TermTk as ttk +sl1 = slice(1) +sl2 = slice(2) +sl3 = slice(3) +sl4 = slice(4) def f1(a): return a def f2(a,b): return a+b def f3(a,b,c): return a+b+c def f4(a,b,c,d): return a+b+c+d -ccb = {f1:1, f2:2, f3:3, f4:4} +ccb = {f1:1, f2:2, f3:3, f4:4} +ccbs = {f1:sl1, f2:sl2, f3:sl3, f4:sl4} def c1(*args,**argv): return f1(*args[:1]) def c2(*args,**argv): return f2(*args[:2]) @@ -56,48 +59,46 @@ def e1(*args,**argv): f3(1,2,3) f4(1,2,3,4) +def e11(*args,**argv): + f1(*args[sl1]) + f2(*args[sl2]) + f3(*args[sl3]) + f4(*args[sl4]) + def e2(*args,**argv): for cb in ccb: nargs = ccb[cb] cb(*args[:nargs]) def e3(*args,**argv): - for cb in ccb.copy(): - nargs = ccb[cb] - cb(*args[:nargs]) + for cb in ccbs.copy(): + nargs = ccbs[cb] + cb(*args[nargs]) def e4(*args,**argv): for cb,n in ccb.copy().items(): cb(*args[:n]) - -def test1(v): return d1(1) -def test2(v): return d2(1,2) -def test3(v): return d3(1,2,3) -def test4(v): return d4(1,2,3,4) -def test5(v): return e1(1,2,3,4) -def test6(v): return e2(1,2,3,4) -def test7(v): return e3(1,2,3,4) -def test8(v): return e4(1,2,3,4) - - -loop = 200000 - - -a=1 -result = timeit.timeit('test1(a)', globals=globals(), number=loop) -print(f"1a s {result / loop:.10f} - {result / loop} {test1(a)}") -result = timeit.timeit('test2(a)', globals=globals(), number=loop) -print(f"2a {result / loop:.10f} - {result / loop} {test2(a)}") -result = timeit.timeit('test3(a)', globals=globals(), number=loop) -print(f"3a s {result / loop:.10f} - {result / loop} {test3(a)}") -result = timeit.timeit('test4(a)', globals=globals(), number=loop) -print(f"4a {result / loop:.10f} - {result / loop} {test4(a)}") -result = timeit.timeit('test5(a)', globals=globals(), number=loop) -print(f"5a s {result / loop:.10f} - {result / loop} {test5(a)}") -result = timeit.timeit('test6(a)', globals=globals(), number=loop) -print(f"6a {result / loop:.10f} - {result / loop} {test6(a)}") -result = timeit.timeit('test7(a)', globals=globals(), number=loop) -print(f"7a s {result / loop:.10f} - {result / loop} {test7(a)}") -result = timeit.timeit('test8(a)', globals=globals(), number=loop) -print(f"8a {result / loop:.10f} - {result / loop} {test8(a)}") +def e5(*args,**argv): + for cb,s in ccbs.copy().items(): + cb(*args[s]) + +def test1(): return d1(1) +def test2(): return d2(1,2) +def test3(): return d3(1,2,3) +def test4(): return d4(1,2,3,4) +def test5(): return e11(1,2,3,4,5,6,7,8,9) +def test6(): return e2(1,2,3,4,5,6,7,8,9) +def test7(): return e3(1,2,3,4,5,6,7,8,9) +def test8(): return e4(1,2,3,4,5,6,7,8,9) +def test9(): return e5(1,2,3,4,5,6,7,8,9) + +loop = 500000 + +a={} + +iii = 1 +while (testName := f'test{iii}') and (testName in globals()): + result = timeit.timeit(f'{testName}(*a)', globals=globals(), number=loop) + print(f"{iii}) s {result / loop:.10f} - {result / loop} {globals()[testName](*a)}") + iii+=1 diff --git a/ttkDesigner/app/signalsloteditor.py b/ttkDesigner/app/signalsloteditor.py index e12ba671..55e4b6c5 100644 --- a/ttkDesigner/app/signalsloteditor.py +++ b/ttkDesigner/app/signalsloteditor.py @@ -196,12 +196,20 @@ class SignalSlotEditor(ttk.TTkWidget): self.layout().addWidget(self._detail,2,1,1,3) addb.clicked.connect(self._addStuff) + delb.clicked.connect(self._delStuff) def _addStuff(self): item = _SignalSlotItem(self._windowEditor) self._items.append(item) self._detail.addTopLevelItem(item) + def _delStuff(self): + if not (items := self._detail.selectedItems()): + return + for item in items: + if (index := self._detail.indexOfTopLevelItem(item)) is not None: + self._detail.takeTopLevelItem(index) + def dumpDict(self): ret = [] for i in self._items: