QT开发中文网

响应分辨率变化事件:监听窗口的resizeEvent事件,在窗口尺寸发生变化时重新调整控件布局和大小。实例代码

以下是一个示例代码,演示如何监听窗口的resizeEvent事件,并在窗口尺寸发生变化时重新调整控件布局和大小。

#include <QApplication>
#include <QMainWindow>
#include <QWidget>
#include <QLayout>
#include <QDebug>

class MainWindow : public QMainWindow
{
public:
    MainWindow(QWidget *parent = nullptr)
        : QMainWindow(parent)
    {
        // 创建一个主窗口并设置布局
        QWidget *centralWidget = new QWidget(this);
        QVBoxLayout *layout = new QVBoxLayout(centralWidget);
        centralWidget->setLayout(layout);
        
        // 添加一些控件到布局中
        layout->addWidget(new QLabel("Label 1", this));
        layout->addWidget(new QLabel("Label 2", this));
        
        setCentralWidget(centralWidget);

        // 监听窗口的resizeEvent事件
        connect(this, &MainWindow::resized, this, &MainWindow::onResize);
    }

protected:
    void resizeEvent(QResizeEvent *event) override
    {
        QMainWindow::resizeEvent(event);
        
        // 发送自定义的resized信号
        emit resized();
    }

private slots:
    void onResize()
    {
         qDebug() << "Window resized!";
         // 在这里重新调整控件布局和大小的逻辑代码
    }

signals:
    void resized();
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    MainWindow mainWindow;
    mainWindow.show();

    return app.exec();
}

在上述代码中,我们创建了一个继承自QMainWindow的MainWindow类。在构造函数中,我们创建了一个主窗口,并设置了一个垂直布局,并向其中添加了两个QLabel控件。然后,我们连接了窗口的resized信号与自定义的onResize槽函数。在resizeEvent函数中,我们发送了自定义的resized信号。

当窗口尺寸发生变化时,会触发resizeEvent事件,从而调用onResize槽函数。在该槽函数中,你可以编写重新调整控件布局和大小的逻辑代码。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=6462

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?