如何取消PyQt5中QTableWidget内QPushButton的尺寸限制?
在PyQt5中创建简易QTableWidget时,调用resizeColumnsToContents()方法后,普通QTableWidgetItems和QLabel能正常调整列宽以适配内容,但QPushButton仍保留默认的最小宽度,导致对应列宽过宽。尝试给按钮设置setMinimumWidth(1)并未生效。
以下是相关代码:
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QTableWidget, QApplication, QTableWidgetItem, QPushButton, QLabel class Table(QTableWidget): def __init__(self, *args): super().__init__(*args) button = QPushButton("X") button.setMinimumWidth(1) self.setHorizontalHeaderLabels(["1", "2", "3", "4"]) self.setItem(0, 0, Cell("Val1")) self.setCellWidget(0, 1, button) self.setCellWidget(0, 2, QLabel("Y")) self.setItem(0, 3, Cell("Val3")) self.resizeColumnsToContents() self.resizeRowsToContents() class Cell(QTableWidgetItem): def __init__(self, *args): super().__init__(*args) self.setTextAlignment(Qt.AlignCenter) if __name__ == '__main__': app = QApplication(sys.argv) widget = Table(1, 4) widget.show() sys.exit(app.exec_())
内容的提问来源于stack exchange,提问作者Amae Saeki
相关产品推荐
相关产品推荐

