如何从Pyqt5中的QTextEdit获取文本? [重复]

问题描述 投票:-1回答:1
我需要从QTextEdit获取文本,但是有这样的麻烦:追溯(最近一次调用最近):otpravit_naz中的文件“ main.py”,第28行textboxValue = self.textEdit.text()AttributeError:“ MyWin”对象没有属性“ textEdit”

这是我的代码(main.py):

import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from test import * import socket sock = socket.socket() class MyWin(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.otpravit.clicked.connect(self.otpravit_naz) def mbox(self, body, title='Error'): dialog = QMessageBox(QMessageBox.Information, title, body) dialog.exec_() def otpravit_naz(self): print("1") textboxValue = self.textEdit.text() print(textboxValue) #sock.connect(('192.168.1.16', 9090)) sock.connect(("192.168.1.45", 9090)) sock.send(b'textboxValue') sock.close() if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) myapp = MyWin() myapp.show() sys.exit(app.exec_())
和ui形式:

from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(517, 283) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.verticalLayoutWidget.setGeometry(QtCore.QRect(60, 20, 421, 201)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setSpacing(23) self.verticalLayout.setObjectName("verticalLayout") self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget) self.textEdit.setObjectName("textEdit") self.verticalLayout.addWidget(self.textEdit) self.label = QtWidgets.QLabel(self.verticalLayoutWidget) self.label.setLineWidth(0) self.label.setMidLineWidth(0) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.list = QtWidgets.QComboBox(self.verticalLayoutWidget) self.list.setObjectName("list") self.list.addItem("") self.list.addItem("") self.list.addItem("") self.verticalLayout.addWidget(self.list) self.otpravit = QtWidgets.QPushButton(self.verticalLayoutWidget) self.otpravit.setObjectName("otpravit") self.verticalLayout.addWidget(self.otpravit) self.verticalLayout.setStretch(0, 20) self.verticalLayout.setStretch(1, 20) self.verticalLayout.setStretch(2, 20) self.verticalLayout.setStretch(3, 20) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 517, 21)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label.setText(_translate("MainWindow", "Предмет:")) self.list.setItemText(0, _translate("MainWindow", "Русский")) self.list.setItemText(1, _translate("MainWindow", "Литература")) self.list.setItemText(2, _translate("MainWindow", "Английский")) self.otpravit.setText(_translate("MainWindow", "Отправить")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
如果它是非常愚蠢的高音,请不要踢我
pyqt pyqt5
1个回答
1
投票
您正在self.ui对象上“安装” GUI,因此ui上的每个小部件实际上都可以作为self.ui.someWidget进行访问。

而且,QTextEdit没有text()属性,但是toPlainText()

toPlainText()

我建议您从不编辑用 def otpravit_naz(self): print("1") textboxValue = self.ui.textEdit.toPlainText() print(textboxValue) 生成的文件,但始终将它们用作导入的模块;阅读更多关于pyuic的信息;另外,请注意在主窗口小部件上而不是在其子窗口上设置主布局,并将所有内容添加到该布局中,否则,每当调整窗口大小时,子窗口小部件都可能被隐藏。

© www.soinside.com 2019 - 2024. All rights reserved.