gpt4 book ai didi

python - 如何读取当前QTabWidget选项卡的QTextEdit文本?

转载 作者:行者123 更新时间:2023-12-01 00:46:00 25 4
gpt4 key购买 nike

我有很多选项卡,它们只包含一个 QTextEdit 元素,我需要读取当前选项卡的 QTextEdit 文本。可以实现吗?

#!/depot/Python-2.7.6/bin/python

import sys,os,copy,re,subprocess
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class Tool(QWidget):

def __init__(self,parent=None):
super(Tool, self).__init__(parent)
self.tabs = QTabWidget()
self.tabs.setTabsClosable(True)
self.tabs.isMovable()
self.initUI()

def help_func(self):
new_tab = QWidget()
text = QTextEdit(self)
text.setReadOnly(True)
text.setLineWrapMode(QTextEdit.NoWrap)
text.setText("some text")
TextBoxlayout = QVBoxLayout()
TextBoxlayout.addWidget(text)
new_tab.setLayout(TextBoxlayout)
self.tabs.addTab(new_tab,str(self.tabs.count()))
self.tabs.setCurrentIndex(self.tabs.count()-1)

def initUI(self):
Tool.help_func(self)
Tool.help_func(self)
Tool.help_func(self)
grid = QGridLayout(self)
grid.addWidget(self.tabs,0,0)
self.setLayout(grid)

我希望在选项卡更改信号上打印 QTextEdit 文本。

最佳答案

利用 QTextEdit 是 TextBoxlayout 的一部分这一事实,因此它是 new_tab 的子级,可以使用 findChild() 获取它:

class Tool(QWidget):
def __init__(self, parent=None):
super(Tool, self).__init__(parent)
self.tabs = QTabWidget(
tabsClosable=True, currentChanged=self.onCurrentChanged
)
self.initUI()

def help_func(self):
new_tab = QWidget()
text = QTextEdit(readOnly=True, lineWrapMode=QTextEdit.NoWrap)
text.setText("some text")
TextBoxlayout = QVBoxLayout(new_tab)
TextBoxlayout.addWidget(text)
self.tabs.addTab(new_tab, str(self.tabs.count()))
self.tabs.setCurrentIndex(self.tabs.count() - 1)

def initUI(self):
for _ in range(3):
self.help_func()
grid = QGridLayout(self)
grid.addWidget(self.tabs, 0, 0)

@pyqtSlot(int)
def onCurrentChanged(self, ix):
w = self.tabs.widget(ix)
te = w.findChild(QTextEdit)
if te is not None:
print(te.toPlainText())

关于python - 如何读取当前QTabWidget选项卡的QTextEdit文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56986873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com