如何在用户调整QMainWindow大小时分配回调?

X''*_*X'' 15 qt qwidget

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

我是Qt的新手.我想为QMainWindow调整大小事件编写一个插槽函数.有这样的事件吗?我怎样才能做到这一点?

RA.*_*RA. 27

有一个resize事件.为了执行事件的自定义处理,您需要创建自己的resize事件处理程序.在您的情况下,您需要创建一个派生自QMainWindow并重新实现该resizeEvent功能的类.您的代码看起来像这样:

void MyMainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here.
}
Run Code Online (Sandbox Code Playgroud)

Qt的自由曲线示例还具有重写resize事件(尽管不是在主窗口)的示例.


Iva*_*vic 5

这在 Qt5 中与我 fe 一起工作以调整 QTableWidget 中的图标大小:

mainWindow.h
...
private:
void resizeEvent(QResizeEvent*);
...

mainWindow.cpp
...
void mainWindow::resizeEvent(QResizeEvent*)
{
    tableWidget->setIconSize(QSize(tableWidget->size()/7)); //7 or whatever number you need it to get the full icon size
}
Run Code Online (Sandbox Code Playgroud)