如何解决当我单击 QPushButton 时,我想更改 QTextBrowser 的文本
我的代码有两个问题。
- 我希望 QPushButton 高于 QTextbrowser。
- 当我单击 QPushButton 时,我想更改 QTextbrowser 的文本。
# test.py
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QVBoxLayout,QTextbrowser
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn2 = QPushButton(self)
btn2.setText('Button&2')
btn2.setGeometry(20,20,100,100)
btn2.clicked.connect(self.callme)
# Add QTextbrowser
text_area = QTextbrowser(self)
text_area.setGeometry(120,160,270,120)
text_area.setText('Before Edit')
vBox = QVBoxLayout()
vBox.addWidget(btn2)
self.setLayout(vBox)
self.setwindowTitle('QPushButton')
self.setGeometry(200,200,500,600)
self.show()
def callme(self):
self.text_area.setText('After Edit')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
解决方法
基本上,问题在于您在顶部使用了 text_edit
,而在底部使用了 self.text_edit
。然后,要将按钮放在顶部,请使用 vbox.setAlignment(Qt.AlignTop)
试试这个:
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QVBoxLayout,QTextBrowser
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn2 = QPushButton(self)
btn2.setText('Button&2')
btn2.setGeometry(20,20,100,100)
btn2.clicked.connect(self.callme)
# Add QTextBrowser
self.text_area = QTextBrowser(self)
self.text_area.setGeometry(120,160,270,120)
self.text_area.setText('Before Edit')
vbox = QVBoxLayout()
vbox.addWidget(btn2)
vbox.setAlignment(Qt.AlignTop)
self.setLayout(vbox)
self.setWindowTitle('QPushButton')
self.setGeometry(200,200,500,600)
self.show()
def callme(self):
self.text_area.setText('After Edit')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。