我想做一个漂亮的布局,但在QSplitter布局中初始化QWidget失败。下面是我的代码:
import sys,os
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class singleGenePanel(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lable = QLabel("Retrive information of the Gene: ")
self.geneName = QLineEdit()
self.geneName.setPlaceholderText("ENSG00000139618")
runBtn = QPushButton('Search >')
runBtn.setStyleSheet("font-size: 20px ;font-weight:bold")
self.snpsTable = QTableWidget()
self.keggTable = QTableWidget()
self.keggTable.setFrameShape(QFrame.NoFrame)
self.keggFig = QLabel(alignment=Qt.AlignCenter)
inputLayout = QHBoxLayout()
inputLayout.addWidget(lable)
inputLayout.addWidget(self.geneName)
inputLayout.addWidget(runBtn)
keggSplitter = QSplitter(Qt.Horizontal)
keggSplitter.setFrameShape(QFrame.StyledPanel)
keggSplitter.addWidget(self.keggTable)
keggSplitter.addWidget(self.keggFig)
keggSplitter.setStretchFactor(0, 1)
keggSplitter.setStretchFactor(1, 9)
keggSplitter.setStyleSheet("QSplitter::handle{background-color: gray; width:5px; border:1px dotted gray}")
splitter = QSplitter(Qt.Vertical)
splitter.addWidget(self.snpsTable)
splitter.addWidget(keggSplitter)
layout = QVBoxLayout()
layout.addLayout(inputLayout)
layout.addWidget(splitter)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = singleGenePanel()
demo.show()
sys.exit(app.exec_())
为什么keggSplitter.setStretchFactor(0,1)和keggSplitter.setStretchFactor(1,9)不工作,并且左keggTable和右keggFig的长度比例不是1到9
QSplitter
使用复杂的计算来估计分配给每个子窗口小部件的大小。它考虑的重要方面是小部件大小提示尝试设置
一切都会如你所愿
相关问题 更多 >
编程相关推荐