setText()不';我真的不能用Python

setText()不';我真的不能用Python,python,input,label,pyqt4,settext,Python,Input,Label,Pyqt4,Settext,它真的不起作用-文本没有改变-为什么它不起作用?它没有给我任何错误(但打印它应该打印的内容) OnKeyboardEvent中的setModPosition()更改新创建的postTool的行编辑中的文本,因为您没有show()新窗口小部件,所以无法看到该文本。您可能需要在OMD\u post上调用setText 尝试用postTool中的函数替换OnKeyBoardEvent模块级函数,或者使用QShortCut import sys from PyQt4 import QtCore,QtGu

它真的不起作用-文本没有改变-为什么它不起作用?它没有给我任何错误(但打印它应该打印的内容)
OnKeyboardEvent
中的setModPosition()更改新创建的postTool的行编辑中的文本,因为您没有
show()
新窗口小部件,所以无法看到该文本。您可能需要在
OMD\u post
上调用
setText

尝试用
postTool
中的函数替换
OnKeyBoardEvent
模块级函数,或者使用QShortCut

import sys
from PyQt4 import QtCore,QtGui
from Windows.intro_win import Ui_Introduction
from Windows.post_adder_win import Ui_postTool
import win32clipboard
import pyHook

class Intro(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Introduction()
        self.ui.setupUi(self)
class postTool(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui2 = Ui_postTool()
        self.ui2.setupUi(self)
    def setModPosition(self):
        self.ui2.lineEdit_2.setText("something")
        print "nomnom"


def OnKeyboardEvent(event):
    KeyClicked = event.KeyID
    if KeyClicked == 121:
        print "Debug from keyboardEvent"
        OMD_post.show()
        postTool().setModPosition()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    OMD_intro = Intro()
    OMD_post = postTool()
    OMD_intro.show()
    eventkey = pyHook.HookManager()
    eventkey.KeyDown = OnKeyboardEvent
    eventkey.HookKeyboard()
    sys.exit(app.exec_())
或者

class postTool(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui2 = Ui_postTool()
        self.ui2.setupUi(self)
    def setModPosition(self):
        self.ui2.lineEdit_2.setText("something")
        print "nomnom"
    def keyPressEvent(event):
        if type(event) == QtGui.QKeyEvent:
            key = str(event.text()).lower()
            if key == 'whatever':
                self.setModPosition()
OnKeyboardEvent
中的
postTool().setModPosition()
更改新创建的postTool的行编辑中的文本,因为您没有
show()
新小部件,所以无法看到该文本。您可能需要在
OMD\u post
上调用
setText

尝试用
postTool
中的函数替换
OnKeyBoardEvent
模块级函数,或者使用QShortCut

import sys
from PyQt4 import QtCore,QtGui
from Windows.intro_win import Ui_Introduction
from Windows.post_adder_win import Ui_postTool
import win32clipboard
import pyHook

class Intro(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui = Ui_Introduction()
        self.ui.setupUi(self)
class postTool(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui2 = Ui_postTool()
        self.ui2.setupUi(self)
    def setModPosition(self):
        self.ui2.lineEdit_2.setText("something")
        print "nomnom"


def OnKeyboardEvent(event):
    KeyClicked = event.KeyID
    if KeyClicked == 121:
        print "Debug from keyboardEvent"
        OMD_post.show()
        postTool().setModPosition()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    OMD_intro = Intro()
    OMD_post = postTool()
    OMD_intro.show()
    eventkey = pyHook.HookManager()
    eventkey.KeyDown = OnKeyboardEvent
    eventkey.HookKeyboard()
    sys.exit(app.exec_())
或者

class postTool(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        self.ui2 = Ui_postTool()
        self.ui2.setupUi(self)
    def setModPosition(self):
        self.ui2.lineEdit_2.setText("something")
        print "nomnom"
    def keyPressEvent(event):
        if type(event) == QtGui.QKeyEvent:
            key = str(event.text()).lower()
            if key == 'whatever':
                self.setModPosition()

看起来你不是在调用
setModPosition()
是的,我是通过onkeyboardevent调用的,它打印调试“nomnom”,我忘了提到。啊,我没看到。你有没有检查过其他插槽是否正常工作,比如
setMaxLength()
,或者
selectAll()
?我没有使用任何其他插槽来进行此输入,这是我的代码,如果需要的话,它看起来不像你在调用
setModPosition()
是的,我通过onkeyboardevent,它打印调试“nom”,我忘了提及。啊,我没看到。您是否检查过其他插槽是否工作,例如
setMaxLength()
,或
selectAll()
?我不使用任何其他插槽进行此输入,这是我的代码(如果需要)。问题是当我使用QT键事件时,当未选择窗口时它不工作(我的意思是,如果我在其他程序中使用键),当我单击F10时会显示小部件(aka keyboardevent),然后它调用postTool()内部的更改文本@Marcin:Right。您是否尝试过将
postTool().setModPosition()
更改为
OMD_post.setModPosition()
?在我看来,
OMD_post
不应该在
OnKeyBoardEvent
的范围内,但是由于您已经在上面的行中使用了
OMD_post
。/me-biddy,/me-biddy(大约9000倍于biddy),它在更改为OMD_post后工作,谢谢,但我真的不知道当我没有使用OMD_post时它为什么不工作(它是从postToool[debug was working]调用方法)。问题是当我使用QT key event时,当窗口未被选中时它不工作(我的意思是如果我在其他程序中使用key),当我单击F10时会显示小部件(aka keyboardevent),然后它调用postTool()内部的更改文本@Marcin:Right。您是否尝试过将
postTool().setModPosition()
更改为
OMD_post.setModPosition()
?在我看来,
OMD_post
不应该在
OnKeyBoardEvent
的范围内,但是由于您已经在上面的行中使用了
OMD_post
。/me-biddy,/me-biddy(大约9000倍于biddy),它在更改为OMD_post后工作,谢谢,但我不知道为什么在我没有使用OMD_post时它不工作(它是从postToool调用方法[debug was working])