qt的界面设计之如何画框

img


在Windows下基于vs19集成QT5.14.1开发环境下中如何画出这样的框框,将控件包裹住

这个不是画出来的,就是 QGroupBox 控件

【以下回答由 GPT 生成】

您好!要在Windows下使用Visual Studio 2019和QT5.14.1开发环境中绘制框框来包裹控件,您可以按照以下步骤进行操作:

步骤1: 创建一个QT应用程序项目 - 打开Visual Studio 2019,选择“创建新项目”。 - 在“创建新项目”对话框中,选择“Visual C++” -> “QT” -> “QT应用程序”。 - 在“配置应用程序”对话框中,选择适当的选项,然后点击“确定”创建项目。

步骤2: 在主窗口中添加控件 - 在QT设计器中选择“MainWindow.ui”文件,将打开主窗口的设计器。 - 在QWidget上拖放一个QFrame控件,这将成为我们的框框。 - 在QFrame控件上再次拖放您想要包裹的控件,例如一个QPushButton。

步骤3: 设置框框属性 - 选中QFrame控件,在属性面板中设置合适的尺寸和位置,以包裹住您的控件。 - 选择QFrame控件的属性>Edit Signals/Slots,添加一个自定义的槽函数,以便在绘制框框时被调用。

步骤4: 实现绘制框框的槽函数 - 打开MainWindow.cpp,找到自定义的槽函数的定义。在这个函数中,您可以使用QPainter来绘制框框。 - 在槽函数中,使用QPainter的drawRect函数来绘制一个矩形框,使用QFrame控件的geometry函数获取框框的位置和大小参数。

以下是一个示例代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    QFrame *frame = ui->frame; // 获取QFrame控件

    QPainter painter(this);
    painter.setPen(Qt::red); // 设置画笔颜色

    // 绘制框框
    painter.drawRect(frame->geometry().x(), frame->geometry().y(),
                     frame->geometry().width(), frame->geometry().height());

    QMainWindow::paintEvent(event);
}

请注意,上述代码中的 paintEvent 函数是QMainWindow的继承函数,它被重写用于绘制框框。如果您的主窗口不是QMainWindow(而是QWidget),请编辑对应函数。

希望这能帮助到您!如果您还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^