Qt按钮弹出临时手动绘制的界面 今日最新


(资料图片)

要在QT中实现按钮弹出一个临时手动绘制的界面,可以使用QWidget类并在其上手动绘制需要显示的内容。

以下为示例代码:

MainWindow.h文件:

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include namespace Ui {class MainWindow;}class MainForm : public QWidget // 自定义窗口类,继承自QWidget{    Q_OBJECTpublic:    explicit MainForm(QWidget *parent = nullptr);    ~MainForm();protected:    void paintEvent(QPaintEvent *event); // 重写paintEvent函数,在此函数中绘制需要显示的内容private:    Ui::MainWindow *ui;};class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = nullptr);    ~MainWindow();private slots:    void on_pushButton_clicked();private:    Ui::MainWindow *ui;    MainForm *mainForm; // 创建一个MainForm对象};#endif // MAINWINDOW_H

MainWindow.cpp文件:

#include "MainWindow.h"#include "ui_MainWindow.h"#include MainForm::MainForm(QWidget *parent) :    QWidget(parent){    setFixedSize(300, 300); // 设置窗口大小}MainForm::~MainForm(){}void MainForm::paintEvent(QPaintEvent *event){    QPainter painter(this);    painter.fillRect(rect(), Qt::white); // 填充白色背景    painter.setPen(Qt::black);    painter.setFont(QFont("Arial", 16));    painter.drawText(rect(), Qt::AlignCenter, tr("This is a test!")); // 绘制文本}MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    mainForm = new MainForm(this); // 创建一个MainForm窗口对象}MainWindow::~MainWindow(){    delete ui;    delete mainForm; // 在此处删除MainForm对象,避免内存泄漏}void MainWindow::on_pushButton_clicked(){    mainForm->show(); // 显示MainForm窗口}

在主窗口中,我们创建了一个MainForm对象,并在其上手动绘制需要显示的内容。在按钮点击事件中调用show()函数显示窗口。

注意:为了避免内存泄漏,在主窗口关闭时手动删除mainForm对象,可以在MainWindow.cpp文件的析构函数中添加delete mainForm;。

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

关键词:

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it