Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 当用户调整QMainWindow的大小时,如何分配回调?_Qt_Qwidget - Fatal编程技术网

Qt 当用户调整QMainWindow的大小时,如何分配回调?

Qt 当用户调整QMainWindow的大小时,如何分配回调?,qt,qwidget,Qt,Qwidget,我在QMainWindow上找不到类似教程的调整大小事件方案,也没有在Qt设计窗口的下拉菜单中看到任何添加调整大小事件的选项 我是新来的。我想为QMainWindow resize事件编写一个slot函数。有这样的事件吗?我怎样才能做到这一点?有一个问题。为了执行事件的自定义处理,您需要创建自己的调整大小事件处理程序。在本例中,您需要创建一个从QMainWindow派生的类,并重新实现该函数。您的代码如下所示: void MyMainWindow::resizeEvent(QResizeEven

我在QMainWindow上找不到类似教程的调整大小事件方案,也没有在Qt设计窗口的下拉菜单中看到任何添加调整大小事件的选项

我是新来的。我想为QMainWindow resize事件编写一个slot函数。有这样的事件吗?我怎样才能做到这一点?

有一个问题。为了执行事件的自定义处理,您需要创建自己的调整大小事件处理程序。在本例中,您需要创建一个从
QMainWindow
派生的类,并重新实现该函数。您的代码如下所示:

void MyMainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here.
}

还有一个覆盖调整大小事件的示例(虽然不在主窗口上)。

这在Qt5中与me f.e.一起工作,以调整QTableWidget中的图标大小:

mainWindow.h
...
私人:
void resizeEvent(QResizeEvent*);
...
mainWindow.cpp
...
void主窗口::resizeEvent(QResizeEvent*)
{
tableWidget->setIconSize(QSize(tableWidget->size()/7));//7或获取完整图标大小所需的任何数字
}

resizeEvent()不是插槽。我会在调用QMainWindow::resizeEvent(事件)之前放置个人代码,而不是之后,因为您可以在将此事件传递给QMainWindow之前从中获取信息。甚至在传递到QMainWindow之前对其进行修改。