【问题标题】:How to resize QTableWidget on Widget by dragging its corner如何通过拖动其角来调整 Widget 上 QTableWidget 的大小
【发布时间】:2014-09-24 03:01:41
【问题描述】:

我想通过拖动右下角来调整QTableWidget 的大小,如下图所示。这个怎么做?这是我的代码。

代码:

from PySide.QtGui import QApplication, QWidget, QTableWidget
week = ["mon", "tue", "wed", "thr", "fri", "sat", "sun"]
app = QApplication([])
mainWidget = QWidget()
tableWidget = QTableWidget(mainWidget)
tableWidget.setRowCount(3)
tableWidget.setColumnCount(7)
tableWidget.setHorizontalHeaderLabels(week)
mainWidget.show()

谢谢。

【问题讨论】:

  • 您好,您必须将 QTableWidget 推送到布局中(QGridLayout/QVerticalLayout/QHorizo​​ntalLayout),然后将布局放在主窗口中。

标签: qt pyqt pyside drag qtablewidget


【解决方案1】:

一种方法是在表格小部件内的布局中使用QSizeGrip

tableWidget->setWindowFlags(Qt::SubWindow);

QSizeGrip * sizeGrip = new QSizeGrip(tableWidget);

QGridLayout * layout = new QGridLayout(tableWidget);
layout->addWidget(sizeGrip, 0,0,1,1,Qt::AlignBottom | Qt::AlignRight);

QSizeGrip 类提供了调整顶级窗口大小的调整句柄。当您设置小部件标志Qt::SubWindow 时,用户可以使用大小夹调整它的大小。

【讨论】:

  • 在一个不意味着包含其他小部件的小部件上设置布局,例如QTableWidget,本质上是一个错误。您无法保证小部件不使用您刚刚替换的布局。你展示的是一个很好的黑客,但它不应该被使用。相反,您可以为调整大小事件编写一个简短的事件过滤器,以保持大小夹正确对齐。
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 2023-03-31
  • 2017-08-30
  • 2014-07-15
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多