Jal*_*hov 1 python qt-designer qtablewidget python-3.x pyqt5
我正在QT Designer中的pyqt5中开发一个小界面,其中包括一个QTableWidget但我想为列分配不同的宽度,我找到了谈论相同内容的主题,但我不知道在哪里插入它们的代码提供一下,不知道是不是版本的问题,我对QT Designer还是比较新的。
我把我提到的问题留下来看看它的价值。
我的文件结构如下:
app.py:存储应用程序的功能
SGS.py:将.ui文件转换为.py后生成的代码
SGS.ui
我保留了SGS.py 部分,其中生成表头是为了它的价值。
item = self.TableDocs.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "IDsystem"))
item = self.TableDocs.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "IDpeople"))
item = self.TableDocs.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Work"))
item = self.TableDocs.horizontalHeaderItem(4)
item.setText(_translate("MainWindow", "Hours"))
我还留下了填充表格的代码
result = Cur.execute("SELECT idsystem,IDpeople,work,hours FROM workers")
self.TableDocs.setRowCount(0)
for row_number, row_data in enumerate(result):
    self.TableDocs.insertRow(row_number)
    for column_number, data in enumerate(row_data):
        self.TableDocs.setItem(row_number, column_number, QtWidgets.QTableWidgetItem(str(data)))
从 ui 生成的 python 文件不应被编辑。将其视为用于“创建”界面的资源文件(如图像或 json 文件)。您无法从 Designer 执行的所有操作都必须在应用程序代码文件中实现。
每当将模型应用到项目视图时,您都可以设置大小(或调整大小模式,例如自动调整大小或“拉伸”到可用宽度)。由于您使用的是 QTableWidget(它有其内部私有模型),因此您可以在界面中创建小部件后立即执行此操作,如果使用设计器文件,则在setupUi(或) 之后。loadUi
为了设置各部分的大小和行为,您需要访问表标题:水平标题用于列,垂直标题用于行。
class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)
        horizontalHeader = self.TableDocs.horizontalHeader()
        # resize the first column to 100 pixels
        horizontalHeader.resizeSection(0, 100)
        # adjust the second column to its contents
        horizontalHeader.setSectionResizeMode(
            1, QtWidgets.QHeaderView.ResizeToContents)
        # adapt the third column to fill all available space
        horizontalHeader.setSectionResizeMode(
            2, QtWidgets.QHeaderView.Stretch)
请注意,如果删除一列并在同一位置插入另一列,则需要再次设置其部分大小或模式。
| 归档时间: | 
 | 
| 查看次数: | 3317 次 | 
| 最近记录: |