1.造成这种行为的原因是什么?
请写出print(self._old_x, new_x)
并查看结果。
就我而言,结果的一部分是这样的。
681 673
673 666
666 660
660 660
660 660
660 661
661 670
670 681
681 693
693 708
708 732
732 750
750 779
你可以看到之间的相同位置self._old_x
and new_x
。
你还可以看到self._old_x
超过new_x
在结果中。
为什么同样的位置会出现?
这很容易说...event.pos()
is QCursor.pos()
。
但你打电话event.x()
and event.y()
在第一行mouseMoveEvent()
.
Between event.x()
, event.y()
呼叫和new_x
, new_y
更新的时间很短,所以有时候没有时间动1。
这也是一个原因,但不是核心。
并请写下print(progress_bar.objectName(), new_value)
in _update_bar
progressBar_y_plus 394
progressBar_x_minus 368
progressBar_y_plus 400
progressBar_x_minus 372
progressBar_y_plus 405
progressBar_x_minus 375
progressBar_y_plus 409
progressBar_x_minus 378
progressBar_y_plus 412
progressBar_x_minus 381
progressBar_y_plus 415
progressBar_x_minus 383
progressBar_y_plus 418
progressBar_x_minus 387
progressBar_y_plus 424
progressBar_x_minus 389
progressBar_y_plus 427
progressBar_x_minus 394
progressBar_y_plus 431
progressBar_x_minus 397
progressBar_y_plus 434
progressBar_x_minus 400
progressBar_y_plus 438
progressBar_x_minus 404
progressBar_y_plus 443
progressBar_x_minus 409
progressBar_y_plus 449
progressBar_x_minus 414
progressBar_y_plus 454
progressBar_x_minus 419
progressBar_y_plus 458
progressBar_x_minus 423
progressBar_y_plus 463
progressBar_x_minus 428
progressBar_y_plus 468
progressBar_x_minus 436
progressBar_y_plus 476
progressBar_x_minus 440
progressBar_y_plus 479
progressBar_x_minus 448
progressBar_y_plus 484
progressBar_x_minus 456
progressBar_y_plus 489
progressBar_x_minus 462
progressBar_y_plus 493
progressBar_x_minus 467
progressBar_y_plus 495
progressBar_x_minus 475
progressBar_y_plus 497
progressBar_x_minus 482
progressBar_y_plus 500
progressBar_x_minus 489
progressBar_x_minus 503
progressBar_y_plus 504
progressBar_x_minus 515
progressBar_x_minus 529
progressBar_x_minus 541
progressBar_x_minus 559
progressBar_x_minus 575
progressBar_x_minus 598
progressBar_x_minus 619
progressBar_x_minus 631
progressBar_x_minus 657
progressBar_x_minus 675
progressBar_x_minus 679
progressBar_x_minus 682
progressBar_x_minus 707
progressBar_y_minus 807
progressBar_x_minus 742
progressBar_y_minus 818
progressBar_x_minus 767
progressBar_y_minus 819
progressBar_x_minus 799
progressBar_x_minus 814
progressBar_x_minus 825
progressBar_y_minus 822
progressBar_x_minus 842
progressBar_y_minus 823
progressBar_x_minus 857
progressBar_y_minus 825
progressBar_x_minus 863
progressBar_y_minus 826
progressBar_x_minus 877
progressBar_y_minus 831
progressBar_x_minus 892
progressBar_x_minus 907
progressBar_x_minus 918
progressBar_y_minus 835
progressBar_x_minus 928
progressBar_x_minus 931
progressBar_x_minus 936
progressBar_x_minus 940
progressBar_x_minus 945
progressBar_x_minus 949
progressBar_x_minus 952
progressBar_x_minus 956
progressBar_x_minus 959
progressBar_x_minus 963
progressBar_x_minus 970
progressBar_x_minus 975
progressBar_x_minus 980
progressBar_x_minus 987
progressBar_x_minus 992
progressBar_x_minus 998
progressBar_x_minus 1002
progressBar_x_minus 1001
progressBar_x_minus 1000
progressBar_x_minus 1004
progressBar_x_minus 1003
progressBar_x_minus 1001
progressBar_x_minus 1001
progressBar_x_minus 1001
progressBar_x_minus 1001
progressBar_x_plus 475
progressBar_x_plus 482
progressBar_x_plus 496
progressBar_x_plus 509
progressBar_x_plus 524
progressBar_x_plus 548
progressBar_x_plus 579
progressBar_x_plus 614
progressBar_x_plus 673
progressBar_x_plus 718
progressBar_x_plus 756
progressBar_x_plus 788
progressBar_x_plus 826
progressBar_x_plus 848
progressBar_y_minus 836
progressBar_x_plus 898
progressBar_y_plus 507
progressBar_x_plus 940
progressBar_x_plus 978
progressBar_x_plus 993
progressBar_x_plus 1014
progressBar_x_plus 1014
progressBar_x_plus 1010
progressBar_x_plus 1016
progressBar_x_plus 1015
progressBar_y_plus 509
progressBar_x_plus 1018
progressBar_x_plus 1012
progressBar_x_plus 1011
progressBar_x_plus 1000
progressBar_x_plus 1012
progressBar_x_plus 1019
progressBar_x_plus 1015
progressBar_x_plus 1012
progressBar_x_plus 1015
progressBar_x_plus 1019
progressBar_x_plus 1015
progressBar_x_plus 1015
progressBar_x_plus 1012
progressBar_x_plus 1014
progressBar_x_plus 1005
progressBar_x_plus 1003
progressBar_x_plus 1009
progressBar_y_minus 839
progressBar_x_plus 1008
progressBar_y_minus 841
progressBar_x_plus 1012
progressBar_y_minus 844
progressBar_x_plus 1011
progressBar_y_minus 848
progressBar_x_plus 1006
progressBar_y_minus 851
progressBar_x_plus 1007
progressBar_y_minus 855
progressBar_x_plus 1006
progressBar_y_minus 860
progressBar_x_plus 1007
progressBar_y_minus 865
progressBar_x_plus 1001
progressBar_y_minus 866
progressBar_x_plus 1001
progressBar_x_plus 1004
progressBar_y_minus 872
progressBar_x_plus 1005
progressBar_y_minus 881
progressBar_x_plus 1005
progressBar_y_minus 889
progressBar_x_plus 1007
progressBar_y_minus 898
progressBar_x_plus 1004
progressBar_y_minus 907
progressBar_x_plus 1005
progressBar_y_minus 917
progressBar_x_plus 1005
progressBar_y_minus 931
progressBar_x_plus 1004
progressBar_y_minus 941
progressBar_x_plus 1004
progressBar_y_minus 952
progressBar_x_plus 1005
progressBar_y_minus 965
progressBar_x_plus 1002
progressBar_y_minus 977
progressBar_x_plus 1001
progressBar_y_minus 991
progressBar_x_plus 1001
progressBar_y_minus 1004
progressBar_y_minus 1005
progressBar_x_plus 1003
progressBar_y_minus 1001
progressBar_y_minus 1007
progressBar_y_minus 1004
progressBar_y_minus 1005
progressBar_y_minus 1005
progressBar_x_minus 1003
progressBar_y_minus 1001
progressBar_x_minus 1004
progressBar_y_minus 1004
progressBar_y_minus 996
progressBar_x_minus 1006
progressBar_y_minus 1007
progressBar_x_minus 1008
progressBar_y_minus 1007
progressBar_x_minus 1007
progressBar_y_minus 1007
progressBar_x_minus 1008
progressBar_y_minus 1009
progressBar_x_minus 1009
progressBar_y_minus 1007
progressBar_x_minus 1005
progressBar_y_minus 1005
progressBar_x_minus 1010
progressBar_y_minus 1006
progressBar_x_minus 1007
progressBar_y_minus 1004
progressBar_x_minus 1010
progressBar_y_minus 1004
progressBar_x_minus 1008
progressBar_y_minus 1001
progressBar_x_minus 1008
progressBar_y_minus 1005
progressBar_x_minus 1013
progressBar_y_minus 1005
progressBar_x_minus 1012
progressBar_y_minus 1003
progressBar_x_minus 1023
progressBar_y_minus 1004
progressBar_x_minus 1013
progressBar_y_minus 1003
progressBar_x_minus 1016
progressBar_y_minus 1003
progressBar_x_minus 1015
progressBar_y_minus 1003
progressBar_x_minus 1014
progressBar_y_minus 1002
progressBar_x_minus 1018
progressBar_y_minus 1000
progressBar_x_minus 1015
progressBar_y_minus 1005
progressBar_x_minus 1009
progressBar_y_minus 1002
progressBar_x_minus 1018
progressBar_y_minus 1003
progressBar_x_minus 1015
progressBar_y_minus 1003
progressBar_x_minus 1014
progressBar_y_minus 1001
progressBar_x_minus 1015
progressBar_y_minus 1005
progressBar_x_minus 1009
progressBar_x_minus 1012
progressBar_y_minus 1001
progressBar_x_minus 1012
progressBar_x_minus 1014
progressBar_x_minus 1008
progressBar_x_minus 1014
progressBar_x_minus 1012
progressBar_x_minus 1015
progressBar_x_minus 1014
progressBar_x_minus 1012
progressBar_x_minus 1013
progressBar_x_minus 1014
progressBar_y_plus 512
progressBar_x_minus 1014
progressBar_y_plus 515
progressBar_x_minus 1014
progressBar_y_plus 519
progressBar_x_minus 1018
progressBar_y_plus 525
progressBar_x_minus 1009
progressBar_y_plus 528
progressBar_x_minus 1012
progressBar_y_plus 532
progressBar_x_minus 1013
progressBar_y_plus 536
progressBar_x_minus 1014
progressBar_y_plus 540
progressBar_x_minus 1010
progressBar_y_plus 546
progressBar_x_minus 1015
progressBar_y_plus 553
progressBar_x_minus 1012
progressBar_y_plus 558
progressBar_x_minus 1010
progressBar_y_plus 565
progressBar_x_minus 1012
progressBar_y_plus 572
progressBar_x_minus 1013
progressBar_y_plus 580
progressBar_x_minus 1008
progressBar_y_plus 586
progressBar_x_minus 1012
progressBar_y_plus 596
progressBar_x_minus 1010
progressBar_y_plus 604
progressBar_x_minus 1009
progressBar_y_plus 612
progressBar_x_minus 1010
progressBar_y_plus 623
progressBar_x_minus 1006
progressBar_y_plus 629
progressBar_x_minus 1007
progressBar_y_plus 637
progressBar_x_minus 1005
progressBar_y_plus 648
progressBar_x_minus 1003
progressBar_y_plus 655
progressBar_x_minus 1002
progressBar_y_plus 663
progressBar_x_minus 1003
progressBar_y_plus 673
progressBar_x_minus 1004
progressBar_y_plus 684
progressBar_x_minus 1001
progressBar_y_plus 693
progressBar_y_plus 702
progressBar_y_plus 712
progressBar_y_plus 713
progressBar_y_plus 718
progressBar_y_plus 724
progressBar_x_plus 1001
progressBar_y_plus 734
progressBar_x_plus 1002
progressBar_y_plus 743
progressBar_y_plus 757
progressBar_y_plus 769
progressBar_y_plus 780
progressBar_y_plus 794
progressBar_y_plus 803
progressBar_y_plus 815
progressBar_y_plus 822
progressBar_x_plus 1003
progressBar_y_plus 829
progressBar_x_plus 1002
progressBar_y_plus 836
progressBar_x_plus 1002
progressBar_y_plus 844
progressBar_x_plus 1004
progressBar_y_plus 850
progressBar_x_plus 1002
progressBar_y_plus 857
progressBar_x_plus 1004
progressBar_y_plus 865
progressBar_x_plus 1002
progressBar_y_plus 872
progressBar_x_plus 1006
progressBar_y_plus 880
progressBar_x_plus 1002
progressBar_y_plus 884
progressBar_x_plus 1002
progressBar_y_plus 893
progressBar_x_plus 1003
progressBar_y_plus 899
progressBar_x_plus 1003
progressBar_y_plus 905
progressBar_x_plus 1002
progressBar_y_plus 907
progressBar_x_plus 1002
progressBar_x_plus 1002
progressBar_y_plus 913
progressBar_x_plus 1001
progressBar_y_plus 918
progressBar_x_plus 1004
progressBar_y_plus 924
progressBar_x_plus 1001
progressBar_y_plus 927
progressBar_y_plus 931
progressBar_x_plus 1003
progressBar_y_plus 938
progressBar_x_plus 1002
progressBar_y_plus 941
progressBar_x_plus 1002
progressBar_y_plus 945
progressBar_x_plus 1004
原因1.我假设 ProgressBar 将 1000 算作 100%.so990 ~ 999
都算作99%。
要停在 99%,通常会发生鼠标移动比以前慢的情况(因为鼠标指向屏幕边缘。)有时我们很快就能达到 100%。
原因2。
你更新new_x
, new_y
to self.old_x
, self.old_y
,所以贵重物品几乎是相等的。看起来从99到100很容易。大多数情况下,我们很快就能达到100%。但事实并不总是如此。因为即使你加上990 + 11
,即使点数超过1000,进度条也不会变成100%...这就是止步于99%的核心原因。
作为证据,你写_update_bar
,例如, new_value = 900 + 11 ,任何你喜欢的数字,但结果必须大于 1000。你的进度条绝对不会变满。相反,它们根本不会移动。
progressBar_y_minus 992
109 132
progressBar_y_minus 1012
98 121
我希望你慢慢地移动鼠标。你可以看到你比更快地移动鼠标容易100%。因为问题是9** ~ 1000的移动宽度。
如果你移动鼠标速度更快,那么 self._pos_x 和 event.pos().x() 就会产生很大的宽度。为此,会导致无法达到 100%,反之亦然。
因此,如果我将鼠标从电脑窗口的左侧位置快速移动到右侧位置,进度条根本不会增加。如果是在 99% 时,效果就会清晰可见。
当你圈住鼠标的移动时,你经常会看到99%。
但我觉得如果慢慢做的话,达到100%是没有问题的。
盘旋包含所有方向的移动。它不适用于一个进度条。
在一次移动结束之前,下一次移动有时不会增加。
我认为绕圈逐渐使宽度变宽,比其他移动更容易达到99%。假新闻。
与桌面大小无关。
2.如何修复代码以使 QProgessBar 在 99% 时不会中断?
如果你理解了1的解释,你就可以避免被这段代码阻止。
请尝试将此代码写入_update_bar
你双关语...
if new_value > 1000:
new_value = 1000