QT实现按钮开关Form窗体的效果

这篇具有很好参考价值的文章主要介绍了QT实现按钮开关Form窗体的效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现效果叙述如下: MainWindow中的按钮实现Form窗体的开关,Form窗体的关闭按钮禁用掉,只允许使用窗体按钮进行,且关闭MainWindow按钮时Form窗体随之关闭。

QT实现按钮开关Form窗体的效果,# ▶ Qt,qt,命令模式,开发语言

注意: 要想实现关闭MainWindow按钮时Form窗体随之关闭,Form窗体的close()MainWindow的析构函数中无法实现,需要将其写入MainWindow的关闭事件中。

废话不多说,直接上代码:


main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

form.c

#include "form.h"
#include "ui_form.h"

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);
    setWindowFlags(Qt::CustomizeWindowHint |
                   Qt::WindowMinimizeButtonHint |
                   Qt::WindowMaximizeButtonHint);   // 禁用Form窗体的关闭按钮
}

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


mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void closeEvent(QCloseEvent *); // 重写MainWindow的关闭事件

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "form.h"
#include <QDebug>

static bool newWinFlag = false;
Form *configWindow = NULL;


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

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

void MainWindow::closeEvent(QCloseEvent *e)
{
    configWindow->close(); // 此处为了实现关闭MainWindow的同时也关闭Form窗体
}

void MainWindow::on_pushButton_clicked()
{
    qDebug() << newWinFlag;
    newWinFlag = !newWinFlag;
    if(newWinFlag == true)
    {
        configWindow->show();
        return;
    }
    else
    {
        configWindow->close();
        return;
    }

}


form.h文章来源地址https://www.toymoban.com/news/detail-558126.html

#ifndef FORM_H
#define FORM_H

#include <QWidget>

namespace Ui {
class Form;
}

class Form : public QWidget
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = 0);
    ~Form();

private:
    Ui::Form *ui;
};

#endif // FORM_H

到了这里,关于QT实现按钮开关Form窗体的效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何实现QT按钮闪烁

    新建一个weight application工程   在ui界面放置一个label控件 两个pushButton按钮,通过改变label样式改变他的颜色   首先在mainwindow.h中加上QTimer的头文件,然后写一个槽函数接受定时器发送的信号,创建一个私有权限的Qtimer对象,然后将两个按钮转到槽。代码实现如下; 在构造函

    2024年02月11日
    浏览(31)
  • QT 完美实现圆形按钮

    QT 版本:5.6.0 官方的按钮有些普通,如果我们想要换成自己喜欢的按钮而却无从下手,那么请继续往下阅读(皮一下)。 首先,可以在网络上搜索一下自己喜欢的按钮图形(或者可以自行绘制),我以下面的图形为例: 创建好工程,向工程中加入资源文件: 在资源文件中加

    2023年04月13日
    浏览(25)
  • VS+QT+PCL点云显示转网格表面体窗体实现

     程序示例精选 VS+QT+PCL点云显示转网格表面体窗体实现 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对VS+QT+PCL点云显示转网格表面体窗体实现编写代码,代码整洁,规则,易读。 学习与应用推荐首选。 一、所需工具软件 二

    2024年02月15日
    浏览(28)
  • Qt VS2017添加Qt窗体

    习惯用Qt Creator编写Qt程序,使用VS都不会创建QWidget了… 在VS的解决方案上中右键-添加-新建项 选择Qt,并没有找到Qt Widgets Class之类的选项,只有Form file 看到一个博客,在VS2022中可以直接创建 1 :使用VS2022创建QT界面, 不确定是否为版本问题 可先创建窗体,在手动添加窗体的

    2024年02月05日
    浏览(41)
  • Qt Button实现按钮长按事件

    最近项目遇到一个需求,通过鼠标按钮长按一直发数据,鼠标松开立即离开。 想了一会儿大概有了几种思路(仅仅是思路,不一样可以实现) 1.重写鼠标事件,通过鼠标检测实现。 2.定时器触发实现。 3.通过某一个参数或者勾选命令实现。 QT按钮类及定时器应用 【QT】定时器

    2024年02月08日
    浏览(49)
  • QT不规则形状的按钮的实现

    Qt实现按钮的不规则样式设置,不是视觉欺骗,是真正的不规则按钮,点击按钮外面不会触发按钮的点击信号 使用如下的代码可以实现特殊形状的按钮,但是按钮还是矩形的,如果按在不规则图形的外面,但是是按钮的矩形的区域仍然可以触发按钮。 使用如下代码可以实现特

    2023年04月09日
    浏览(33)
  • QT6实现按钮双击事件

    实现思路:利用事件过滤器实现按钮双击功能,主要是通过调用installEventFilter函数和重写事件eventFilter函数实现。   1、创建项目 启动Qt Creator,在主菜单的[文件]下,打开[新建文件或项目]菜单,弹出新建文件或项目对话框,创建Qt Widgets Application 项目,在Class Information步骤中

    2024年02月12日
    浏览(34)
  • 【QT入门】 Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框

    往期回顾: 【QT入门】 Qt自定义控件与样式设计之qss选择器-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QLineEdit的qss使用-CSDN博客 【QT入门】Qt自定义控件与样式设计之QPushButton常用qss-CSDN博客 鼠标悬浮弹出对话框的功能:最终要实现纯代码设计出一个音量按钮,当鼠标悬浮

    2024年04月23日
    浏览(30)
  • qt实现不定数量的按钮向前向后移动展示

    此文主要记录用qt实现按钮的移动,具体效果如下: 模拟按钮移动效果 本文记录了三种实现方式。 思路 用动态数组vector存放创建的按钮QPushButton的指针,使用两个同类型的二级指针QPushButton来指向数组中的元素,初始状态下,首尾指针都指向数组中第一个元素,随着界面初始

    2024年04月27日
    浏览(25)
  • 【QT入门】 自定义标题栏界面qss美化+按钮功能实现

    往期回顾: 【QT入门】 鼠标按下和移动事件实现无边框窗口拖动-CSDN博客 【QT入门】 设计实现无边框窗口拉伸的公用类-CSDN博客 【QT入门】对无边框窗口自定义标题栏并实现拖动和拉伸效果-CSDN博客 1、实现悬浮样式改变 当鼠标悬浮到该按钮上时,样式会有一定改变。 2、添加

    2024年04月10日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包