所以,我正在开发一个应用程序,并使用QTableWidget生成一个表。我想把桌子放在窗户的中央,但我找不到办法,它占用了太多的空间,而且在窗户的左上角卡住了。我将表格和按钮放在QVBoxLayout中,表格(底部和右侧)后有一些空白,然后是远离表格的按钮
这就是它的样子
这就是我想要的
现在我的代码是这样的:
from PyQt5.QtWidgets import QHeaderView, QPushButton, QMainWindow, QApplication, QMenuBar, QAction, QFileDialog, QWidget, QTableView, QVBoxLayout, QHBoxLayout, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import QAbstractTableModel, Qt
from PyQt5 import QtGui
import sys
class MyApp(QMainWindow):
def __init__(self):
super().__init__()
self.createWindow()
self.show()
def createWindow(self):
self.setWindowTitle('Pós Graduação')
self.setWindowIcon(QtGui.QIcon('icon.ico'))
self.setGeometry(300, 100, 700, 600)
self.table_widget = TableWidget(self)
self.setCentralWidget(self.table_widget)
class TableWidget(QWidget):
def __init__(self, parent):
super(TableWidget, self).__init__(parent)
self.layout = QVBoxLayout(self)
self.creatingTable(parent)
#self.setLayout(self.layout)
def creatingTable(self, parent):
tableWidget = QTableWidget()
tableWidget.setRowCount(6)
tableWidget.setColumnCount(4)
tableWidget.horizontalHeader().setVisible(False)
tableWidget.verticalHeader().setVisible(False)
header = tableWidget.horizontalHeader()
header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
header.setSectionResizeMode(3, QHeaderView.ResizeToContents)
self.layout.addWidget(tableWidget)
self.button1 = QPushButton("Button 1")
self.layout.addWidget(self.button1)
self.setLayout(self.layout)
if __name__ == '__main__':
App = QApplication(sys.argv)
App.setStyle('Fusion')
window = MyApp()
sys.exit(App.exec())
项目视图有一个Qt的默认大小“提示”,这是小部件建议的最适合显示其内容并使其尽可能可用的大小。此外,每个小部件都有一个^{} 属性,它告诉小部件作为布局的一部分时的行为(如果它收缩、增长、具有固定大小等)
像QTableWidget(及其祖先QTableView)这样的项目视图并没有显式地公开它们的内容,这是出于显而易见的原因:一个表可能有数千行和数千列,布局不应该真正关心它们
为了能够根据其内容调整表的大小,表必须循环浏览所有内容,要做到这一点,最好在内容改变大小时进行。最好的方法可能是连接到模型和头提供的信号,并在每次激发它们时设置一个固定的大小,通过子类化可以更好地实现这一点
最后,当向布局添加小部件时,它通常会使用尽可能多的空间。如果没有,则根据默认的左上角对齐。要避免这种情况,请通过指定对齐方式添加小部件:
注意:正如您所看到的,我没有使用
self.layout =
,然后我使用了self.layout()
。这有两个原因:layout
是每个QWidget的属性)setLayout
,因为它已经隐式调用了李>相关问题 更多 >
编程相关推荐