25

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

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

4

3 回答 3

41

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

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

Qt Scribble 示例也有一个覆盖调整大小事件的示例(尽管不在主窗口上)。

于 2012-10-10T22:50:41.180 回答
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
}
于 2020-03-01T21:47:16.733 回答
0

在 PyQt5 中尝试以下操作:

from PyQt5 import QtWidgets as qtw
from PyQt5 import QtGui as qtg

class MainWindow(qtw.QMainWindow):

    def __init__(self):
        super().__init__()
        self.resize(600, 600)
        # your code

    def resizeEvent(self, e: qtg.QResizeEvent):
        # your code
于 2021-12-23T04:43:32.403 回答