Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在我的QTableWidget中消除这个空白?_Python_Qt_Qt4_Pyqt_Pyqt4 - Fatal编程技术网

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)为您创建水平滚动条,但我没有尝试。在拉伸最后一部分之前调整列的大小,我没有尝试过,但通常如果不是最后一件事,你就会遇到问题。