Python 在QLineEdit上模拟返回按下的信号

Python 在QLineEdit上模拟返回按下的信号,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我有一个QLineEdit小部件,您可以在其中以编程方式或通过用户输入编辑文本 虽然我已经设法让用户输入法正常工作,但在使用setText后,tabRect仍然有效的编程方式上,我遇到了一些问题 QLineEdit/tabRect发生在QTabBar的选项卡重命名之上 def\u重命名选项卡(self,index,new\u name=“”): 自编辑选项卡索引=索引 如果是自编辑的选项卡索引!=self.currentIndex(): self.setCurrentIndex(self.\u编

我有一个QLineEdit小部件,您可以在其中以编程方式或通过用户输入编辑文本

虽然我已经设法让用户输入法正常工作,但在使用
setText
后,
tabRect
仍然有效的编程方式上,我遇到了一些问题

QLineEdit/tabRect发生在QTabBar的选项卡重命名之上

def\u重命名选项卡(self,index,new\u name=“”):
自编辑选项卡索引=索引
如果是自编辑的选项卡索引!=self.currentIndex():
self.setCurrentIndex(self.\u编辑的\u选项卡\u索引)
rect=self.tabRect(索引)
上边距=3
左边距=6
self.\u rename\u line\u edit=QtGui.QLineEdit(self)
self.\u rename\u line\u edit.show()
self.\u重命名\u行\u编辑.move(
矩形左()
)
self.\u重命名\u行\u编辑.resize(
矩形宽度()-2*左边框,矩形高度()-2*上边框
)
如果是新名称:
self.\u rename\u line\u edit.setText(新名称)
#self.\u重命名\u行\u编辑.clearFocus()
#self.\u重命名\u行\u编辑.文本编辑.连接(self.\u重命名完成)
其他:
self.\u rename\u line\u edit.setText(self.tabText(索引))
self.\u重命名\u行\u编辑。选择全部()
self.\u rename\u line\u edit.setFocus()
self.\u重命名\u行\u编辑。编辑完成。连接(self.\u重命名完成)
self.currentChanged.connect(self.\u重命名完成)
尝试使用
clearFocus
,但似乎没有帮助


是否有一种方法可以将
returnPressed
模拟到QLineEdit,类似于
toggle()
trigger()

您可以使用QCoreApplication::postEvent()发送QKeyEvent:

从PyQt4导入QtCore,QtGui
从functools导入部分
随机输入
类LineEdit(QtGui.QLineEdit):
def模拟返回按下(自):
keyEvent=QtGui.QKeyEvent(
QtCore.QEvent.KeyPress,QtCore.Qt.Key\u返回,QtCore.Qt.NoModifier
)
QtCore.QCoreApplication.postEvent(self,keyEvent)
类小部件(QtGui.QWidget):
def uuu init uuu(self,parent=None):
超级(小部件,自我)。\uuuuu初始化\uuuuuuu(父级)
lay=QtGui.QVBoxLayout(自)
self.les=[]
对于范围(4)中的i:
le=行编辑(“消息-{}”。格式(i))
le.returnPressed.connect(自开_returnPressed)
lay.addWidget(le)
self.les.append(le)
包装器=部分(self.on\u超时,self.les)
timer=QtCore.QTimer(self,timeout=wrapper,interval=1000)
timer.start()
def on_返回按下(自):
打印(“按回车键时”,self.sender().text())
def on_超时(自身、les):
le=随机选择(self.les)
le.模仿
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=QtGui.QApplication(sys.argv)
w=Widget()
w、 show()
sys.exit(app.exec_())

一些反馈??