如何更改QTableWidget本身的位置

2024-09-10 21:41:17 发布

您现在位置:Python中文网/ 问答频道 /正文

如何更改tableWidget的位置?此方法不起作用:

self.tableWidget.move(100,100)

尝试了其他一些方法,如self.tableWidget.x和self.tableWidget.y,但没有成功

表格的屏幕截图:
An screenshot of the table

这是我的代码:

import sys
from PyQt5.QtGui import * 
from PyQt5.QtCore import Qt, pyqtSlot
from PyQt5.QtWidgets import * 
                      
#Main Window 
class App(QWidget): 
    def __init__(self): 
        super().__init__() 
        self.title = 'PyQt5 - QTableWidget'
        self.left = 200
        self.top = 100
        self.width = 740
        self.height = 880
        self.setWindowTitle(self.title) 
        self.setGeometry(self.left, self.top, self.width, self.height) 
        self.createTable() 
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.tableWidget) 
        self.setLayout(self.layout)
        self.show() 
   
    def createTable(self):
        self.tableWidget = QTableWidget() 
        self.tableWidget.setRowCount(8)  
        self.tableWidget.setColumnCount(8) 
        self.tableWidget.setFixedSize(700,700)
        self.tableWidget.move(100,100)
        
        self.tableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.tableWidget.horizontalHeader().setStretchLastSection(True) 
        self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.tableWidget.verticalHeader().setStretchLastSection(True) 
        self.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
        
if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    ex = App() 
    sys.exit(app.exec_()) 

Tags: 方法fromimportselfappmovetitleinit
1条回答
网友
1楼 · 发布于 2024-09-10 21:41:17

如果需要手动定位,则不应使用布局,而应将窗口作为父窗口传递

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QHeaderView, QTableWidget, QWidget

# Main Window
class App(QWidget):
    def __init__(self):
        super().__init__()
        self.title = "PyQt5 - QTableWidget"
        self.left = 200
        self.top = 100
        self.width = 740
        self.height = 880
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.createTable()

    def createTable(self):
        self.tableWidget = QTableWidget(self)
        self.tableWidget.setRowCount(8)
        self.tableWidget.setColumnCount(8)
        self.tableWidget.setFixedSize(700, 700)
        self.tableWidget.move(100, 100)

        self.tableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.tableWidget.horizontalHeader().setStretchLastSection(True)
        self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.tableWidget.verticalHeader().setStretchLastSection(True)
        self.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

相关问题 更多 >