的Python 2.5.4 PyQt4的PyQt4的QSpinBox.selectAll()工作不正常
我子類一QDoubleSpinBox對focusIn事件發出了一個信號:
#Custom widgets for DPL GUI
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class DPLDoubleSpinBox(QDoubleSpinBox):
__pyqtSignals__ = ("valueChanged(double)", "focusIn()")
def __init__(self, *args):
QDoubleSpinBox.__init__(self, *args)
def event(self, event):
if(event.type()==QEvent.FocusIn):
self.emit(SIGNAL("focusIn()"))
#self.clear() Works as expected
self.selectAll() #See below
return QDoubleSpinBox.event(self, event)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
widget = DPLDoubleSpinBox()
widget2 = DPLDoubleSpinBox()
widget.show()
widget2.show()
sys.exit(app.exec_())
如果你點擊一個內框,然後殺了其他窗口,它的作品。如果你點擊一個,然後另一個,然後把任何其他窗口集中在桌面上,它似乎工作。
我認爲這是一個焦點問題,但無法追蹤。我只需要它點擊時選擇所有。我試過通過它的行編輯指針來做,但是我得到了相同的結果。試圖強調其他小部件的重點,但仍然是相同的結果。
當它發出「focusIn()」時,您可以連接自定義插槽以觸發。然後你可以使用anyQSpinBox.selectAll(),它可以工作,而不是本身。