Это связано с другим вопросом, который я нашел здесь и который кажется неактивным в течение нескольких месяцев, поэтому я думаю, что его стоит задать еще раз.
Я создал простой QDialog, который имеет QTextEdit и QPushButton. Это появляется в моем приложении, когда пользователь щелкает правой кнопкой мыши и выбирает вариант «добавлять комментарии». Я хочу, чтобы они могли писать текст произвольной формы, и я просто сохраню все, что они пишут, в виде длинной строки, не заботясь о новых строках и т. Д.
Когда пользователь нажимает кнопку, он выполняет код, подобный следующему:
self.connect(accept_button,QtCore.SIGNAL('clicked()'),lambda arg=str(view_textedit.toPlainText()): self.updateGroupComments(arg))
def updateGroupComments(self,new_comment_str):
print "Updating user comment to have new string: " + new_comment_str
self.group_entry.list_of_user_comments[self.currentFrameCounter] = new_comment_str
Это не обнаружение текста TextEdit, который видим (он только обнаруживает, какой текст редактирования текста установлен, когда он создается). Как сделать простую команду, которая возвращает текущий видимый текст из QTextEdit. Опять же функция
toPlainText()
работает неправильно ... он не находит текущий видимый текст, только какой бы текст ни отображался на экране до того, как пользователь начал вносить изменения или дополнения.
Если это невозможно сделать без создания подклассов и обращения к позициям курсора, это делает все это бесполезным ... поэтому оставляйте предложения только для тех, которые реализованы без использования подклассов или манипулирования курсорами. Должно быть очень просто и просто вернуть весь видимый в данный момент текст ... что мне не хватает?