如何根据信号改变pyqt中重叠小部件的可见性
Posted
技术标签:
【中文标题】如何根据信号改变pyqt中重叠小部件的可见性【英文标题】:how to change the visibility of overlapped widgets in pyqt based on signals 【发布时间】:2012-12-27 20:13:06 【问题描述】:我有多个相同大小的 TextBrowser 框重叠,我需要在不同的按钮点击时显示不同的 TextBrowser。有没有办法可以改变 TextBrowser 在不同按钮点击时的可见性?请帮助我。谢谢。
【问题讨论】:
【参考方案1】:我不确定我是否正确理解了您的问题,但以下示例是否有帮助?
#!/usr/bin/python
#-*- coding:utf-8 -*-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class changeVisibility(QWidget):
def __init__(self, parent=None):
super(changeVisibility, self).__init__(parent)
self.textbrowserA = QTextBrowser()
self.textbrowserA.setStyleSheet("background-color:red")
self.textbrowserB = QTextBrowser()
self.textbrowserB.setStyleSheet("background-color:blue")
self.buttonA = QPushButton("Show A")
self.buttonB = QPushButton("Show B")
self.verticalLayout = QVBoxLayout(self)
self.buttonA = QPushButton("Show A")
self.verticalLayout.addWidget(self.textbrowserA)
self.textbrowserA.show()
self.verticalLayout.addWidget(self.textbrowserB)
self.textbrowserB.hide()
self.verticalLayout.addWidget(self.buttonA)
self.verticalLayout.addWidget(self.buttonB)
self.buttonA.clicked.connect(self.showA)
self.buttonB.clicked.connect(self.showB)
def showA(self):
self.textbrowserB.hide()
self.textbrowserA.show()
def showB(self):
self.textbrowserA.hide()
self.textbrowserB.show()
def main():
app = QApplication(sys.argv)
cV = changeVisibility()
cV.show()
app.exec_()
if __name__ == '__main__':
main()
【讨论】:
以上是关于如何根据信号改变pyqt中重叠小部件的可见性的主要内容,如果未能解决你的问题,请参考以下文章