Python 如何在我的QTableWidget中消除这个空白?
如何消除应用程序中的空白:Python 如何在我的QTableWidget中消除这个空白?,python,qt,qt4,pyqt,pyqt4,Python,Qt,Qt4,Pyqt,Pyqt4,如何消除应用程序中的空白: gridLayout = QGridLayout() #add other widgets currentItemsTable = QTableWidget(4, 2) currentDeviceIconLabel = QLabel("Current Device Icon: ") self.currentDeviceIcon = QLabel() currentAppIconLabel = QLabel("Curr
gridLayout = QGridLayout()
#add other widgets
currentItemsTable = QTableWidget(4, 2)
currentDeviceIconLabel = QLabel("Current Device Icon: ")
self.currentDeviceIcon = QLabel()
currentAppIconLabel = QLabel("Current App Icon: ")
self.currentAppIcon = QLabel()
currentTitleLabel = QLabel("Current Title: ")
self.currentTitle = QLabel(self.getCurrentTitle())
currentSubtitleLabel = QLabel("Current Subtitle: ")
self.currentSubtitle = QLabel(self.getCurrentSubtitle())
currentItemsTable.setCellWidget(0, 0, currentDeviceIconLabel)
currentItemsTable.setCellWidget(0, 1, self.currentDeviceIcon)
currentItemsTable.setCellWidget(1, 0, currentAppIconLabel)
currentItemsTable.setCellWidget(1, 1, self.currentAppIcon)
currentItemsTable.setCellWidget(2, 0, currentTitleLabel)
currentItemsTable.setCellWidget(2, 1, self.currentTitle)
currentItemsTable.setCellWidget(3, 0, currentSubtitleLabel)
currentItemsTable.setCellWidget(3, 1, self.currentSubtitle)
currentItemsTable.horizontalHeader().hide()
currentItemsTable.resizeColumnsToContents()
currentItemsTable.resizeRowsToContents()
currentItemsTable.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
gridLayout.addWidget(currentItemsTable, 1, 4, 8, 2)
我想去掉QTableWidget(蓝色箭头)中的空白。我该怎么做
以下是我的申请代码:
gridLayout = QGridLayout()
#add other widgets
currentItemsTable = QTableWidget(4, 2)
currentDeviceIconLabel = QLabel("Current Device Icon: ")
self.currentDeviceIcon = QLabel()
currentAppIconLabel = QLabel("Current App Icon: ")
self.currentAppIcon = QLabel()
currentTitleLabel = QLabel("Current Title: ")
self.currentTitle = QLabel(self.getCurrentTitle())
currentSubtitleLabel = QLabel("Current Subtitle: ")
self.currentSubtitle = QLabel(self.getCurrentSubtitle())
currentItemsTable.setCellWidget(0, 0, currentDeviceIconLabel)
currentItemsTable.setCellWidget(0, 1, self.currentDeviceIcon)
currentItemsTable.setCellWidget(1, 0, currentAppIconLabel)
currentItemsTable.setCellWidget(1, 1, self.currentAppIcon)
currentItemsTable.setCellWidget(2, 0, currentTitleLabel)
currentItemsTable.setCellWidget(2, 1, self.currentTitle)
currentItemsTable.setCellWidget(3, 0, currentSubtitleLabel)
currentItemsTable.setCellWidget(3, 1, self.currentSubtitle)
currentItemsTable.horizontalHeader().hide()
currentItemsTable.resizeColumnsToContents()
currentItemsTable.resizeRowsToContents()
currentItemsTable.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
gridLayout.addWidget(currentItemsTable, 1, 4, 8, 2)
此外,如何使QTableWidget根据行和列内容调整大小?我不需要任何滚动条。我认为您应该使用以下选项:
currentItemsTable.horizontalHeader().setStretchLastSection(True)
currentItemsTable.verticalHeader().setStretchLastSection(True)
您应该在resize….toContents()之后调用此函数,并且无论何时要调整内容的大小,都应该首先设置stretchlastSection(False),类似于:
currentItemsTable.verticalHeader().setStretchLastSection(False)
currentItemsTable.resizeRowsToContents()
currentItemsTable.verticalHeader().setStretchLastSection(True)
或者你会在调整大小时得到奇怪的效果。我认为,最好的解决方案是根本不使用
QTableWidget
!您可以使用QGridLayout
easily@Lol4t0我不喜欢没有QTableWidget的widget的外观。我想要白色背景和网格线。您可以将背景设置为白色,并对网格线使用QFrame
s有没有办法在最后一个单元格拉伸后平衡分布?您可以计算标题的宽度,并使用QtableView.setColumnWidth(column,width)对每一列进行平衡调用,可能您需要将最后一列放大一点,以避免调用setStretchLastSection(True)为您创建水平滚动条,但我没有尝试。在拉伸最后一部分之前调整列的大小,我没有尝试过,但通常如果不是最后一件事,你就会遇到问题。