我既没有在 QMainWindow 上找到类似教程的调整大小事件的方案,也没有在 Qt 设计窗口的下拉菜单中看到任何添加调整大小事件的选项。
我是 Qt 的新手。我想为 QMainWindow 调整大小事件编写一个槽函数。有这样的事件吗?我怎样才能做到这一点?
有一个调整大小事件。为了执行事件的自定义处理,您需要创建自己的调整大小事件处理程序。在您的情况下,您需要创建一个派生自该函数QMainWindow
并重新实现该resizeEvent
函数的类。您的代码将如下所示:
void MyMainWindow::resizeEvent(QResizeEvent* event)
{
QMainWindow::resizeEvent(event);
// Your code here.
}
Qt Scribble 示例也有一个覆盖调整大小事件的示例(尽管不在主窗口上)。
这适用于 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
}
在 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