我是PyQt的新手,我正在做一个类似聊天的应用程序。我初始化了GUI并创建了几个方法来管理用户输入。问题是,我不能利用自我方法()说明如网上教程所示。出于某种原因,Python告诉我object没有属性“WIDGET”,这里的WIDGET是QListWidget。在
我设法用findChild克服了这个问题,但我不确定这是正确的方法。从PyQt的方法中访问小部件的正确方法是什么?在
我的代码是:
import stuff *
class ASIMOV(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('SansSerif', 12))
botLog = QListWidget(self)
botLog.resize(150, 150)
botInput = QLineEdit(self)
botInput.returnPressed.connect(self.handleChatInput)
vbox = QVBoxLayout()
vbox.addWidget(botLog)
vbox.addWidget(botInput)
self.setLayout(vbox)
self.resize(600, 400)
self.show()
def startChat(self, botLog):
u = ASIMOV_user.User()
#Greet user
botLog.addItem('#: Hey there' + u.getName())
botChat = ASIMOV_chat.Chat()
def handleChatInput(self):
u = ASIMOV_user.User()
print(self.botLog.text())
botInput = self.findChild(QLineEdit, "")
botLog = self.findChild(QListWidget, "")
#lineEdits = self.findChildren(QLineEdit)
botLog.addItem('#' + u.getName() + ': ' + botInput.text())
#print(botInput.text())
if __name__=="__main__":
app = QApplication(sys.argv)
w = ASIMOV()
sys.exit(app.exec_())
另外,每次我想访问一个类的方法(比如来自ASIMOV_用户类的getter),我必须初始化一个类吗?在
答案由三个菠萝给出。在本例中,原始代码声明了没有self运算符的小部件,这使它们成为本地元素。在
正如他所描述的,它只需要添加自我小工具使它们对应用程序中的其余方法可用。在
原始答案如下:
相关问题 更多 >
编程相关推荐