只有 Key_Tab & ShiftModifier 不能很好地与 PySide 配合使用
Only Key_Tab & ShiftModifier does't work well with PySide
前
我搜索了其他问题,但找不到解决方案。
我想同时执行 Tab 键和 Shift 操作,因为我想通过按 Tab 添加新的性能 key.I 知道 Shiftmodifier 枚举很好。
但是Tab key.Do键的时候就不行 你知道怎么控制吗?
另一方面,Controlmodifier效果很好。
当我按下 Tab 键时
tab only
当我按下 Tab 和 Control 键时
tab & Control
当我按下除 Tab 和 Shift 键之外的任意键时
print("tab & any key except for tab key")
当我按下 Tab 和 Shift 键时
无响应...为什么?
示例代码
from PySide import QtGui
from PySide import QtCore
import sys
class TSEditer(QtGui.QTextEdit):
def __init__(self,parent=None):
super(TSEditer,self).__init__(parent=None)
def keyPressEvent(self,event):
if event.key() == QtCore.Qt.Key_Tab and event.modifiers() == QtCore.Qt.ControlModifier:
print("tab & control")
elif event.key() == QtCore.Qt.Key_Tab and event.modifiers() == QtCore.Qt.ShiftModifier:
print("tab & shift")
elif event.key() == QtCore.Qt.Key_A and event.modifiers() == QtCore.Qt.ShiftModifier :
print("tab & any key except for tab key")
elif event.key() == QtCore.Qt.Key_Tab:
print("tab only")
return QtGui.QTextEdit.keyPressEvent(self,event)
def main():
try:
QtGui.QApplication([])
except Exception as e:
print(15,e)
ts = TSEditer()
ts.show()
sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
main()
应该是
if event.key() == QtCore.Qt.Key_Backtab:
即Key_Backtab 是 Tab 和 Shift 的组合
前
我搜索了其他问题,但找不到解决方案。
我想同时执行 Tab 键和 Shift 操作,因为我想通过按 Tab 添加新的性能 key.I 知道 Shiftmodifier 枚举很好。 但是Tab key.Do键的时候就不行 你知道怎么控制吗? 另一方面,Controlmodifier效果很好。
当我按下 Tab 键时
tab only
当我按下 Tab 和 Control 键时
tab & Control
当我按下除 Tab 和 Shift 键之外的任意键时
print("tab & any key except for tab key")
当我按下 Tab 和 Shift 键时
无响应...为什么?
示例代码
from PySide import QtGui
from PySide import QtCore
import sys
class TSEditer(QtGui.QTextEdit):
def __init__(self,parent=None):
super(TSEditer,self).__init__(parent=None)
def keyPressEvent(self,event):
if event.key() == QtCore.Qt.Key_Tab and event.modifiers() == QtCore.Qt.ControlModifier:
print("tab & control")
elif event.key() == QtCore.Qt.Key_Tab and event.modifiers() == QtCore.Qt.ShiftModifier:
print("tab & shift")
elif event.key() == QtCore.Qt.Key_A and event.modifiers() == QtCore.Qt.ShiftModifier :
print("tab & any key except for tab key")
elif event.key() == QtCore.Qt.Key_Tab:
print("tab only")
return QtGui.QTextEdit.keyPressEvent(self,event)
def main():
try:
QtGui.QApplication([])
except Exception as e:
print(15,e)
ts = TSEditer()
ts.show()
sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
main()
应该是
if event.key() == QtCore.Qt.Key_Backtab:
即Key_Backtab 是 Tab 和 Shift 的组合