Tôi đã tạo cho plugin của tôi một GUI khởi động với 3 nút. Điều này hoạt động rất tốt và nếu tôi nhấp vào một trong các nút, một hành động cụ thể sẽ được bắt đầu. Cho đến nay công trình này. Nếu tôi nhấp vào một trong các nút, GUI mới có hai nút "ok" và "cancel" và một dòng lệnh xuất hiện. Nếu tôi đẩy hủy GUI sẽ bị đóng, nếu tôi bật ok, tôi muốn chương trình đọc văn bản từ editline và lưu nó trong một biến. Điều này doesnßt làm việc cho đến nay.Làm thế nào để đọc ra các văn bản từ QLineEdit trong python?
Đây là lớp chứa thoại:
from PyQt4.QtCore import pyqtSlot
from PyQt4.QtGui import QDialog, QLineEdit
from ui_grz import Ui_Dialog
class grzDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
# Set up the user interface from Designer.
self.ui = Ui_Dialog()
self.ui.setupUi(self)
Đây là lớp học mà contians cấu trúc của giao diện sau khi tạo GUI với QT Designer và các pyuic4 lệnh:
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(387, 153)
self.buttonBox = QtGui.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(30, 110, 341, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(10, 10, 361, 51))
self.label.setObjectName(_fromUtf8("label"))
self.lineEdit = QtGui.QLineEdit(Dialog)
self.lineEdit.setGeometry(QtCore.QRect(10, 60, 351, 31))
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.retranslateUi(Dialog)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), Dialog.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "GRZ Analyse", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Dialog", "<html><head/><body><p><span style=\" font-weight:600;\">Bitte geben Sie hier den Schwellenwert für die GRZ-Analyse ein:</span></p><p>Bitte achten Sie auf eine korrekte Schreibweise (bspw. 2.5):</p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
Và trong lớp học này, tôi cần biến:
# Import the PyQt and QGIS libraries
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
# Import the code for the dialog
from ubgrzdialog import grzDialog
class quickAnalysis:
def __init__(self, iface):
# Save reference to the QGIS interface
self.iface = iface
def grzAnalysis(self):
dlg = grzDialog()
dlg.show()
result = dlg.exec_()
if result == 1:
text = dlg.text()
QMessageBox.information(self.iface.mainWindow(),"test", "%s" %(text), QMessageBox.Ok)
Đây chỉ là một phần ngắn của lớp học, nhưng đây là phần mà tôi có câu hỏi làm thế nào để đọc văn bản từ tiện ích LineEdit.
Bạn có ý tưởng hoặc đề xuất nào không?
Cảm ơn và xin lỗi nếu đây là bài đăng kép, nhưng tôi chưa tìm thấy câu trả lời thích hợp cho vấn đề của mình.
Tác phẩm này. Cảm ơn! – Sven