QT基础学习(8)---自定义对话框


QT自定义对话框

一、自定义对话框

在一个应用程序设计中,为了实现一些特定的功能,必领设计自定义对话框。

二、自定义对话框示例

1.建立文件mydialog

2.点击项目名单击右键—>添加新文件—>选择C++ Class–>点击Choose…—>下一步—>完成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.得到结果

在这里插入图片描述

4.在widget.cpp 编写,加入头文件mydialog.h

#include "widget.h"
//实现一个两个框 小框验证后弹出大框
#include <QWidget>


#include <QDialog> //基础模板 三大框架之一
#include "mydialog.h"  //添加自己的头文件


Widget::Widget(QWidget *parent)
: QWidget(parent)
{
#if 0  //该方法无法体现面向对象
//QWidget a;
//a.show();
//qwidget创造一个框 函数结束后就结束 不能卡住界面达不到效果


myDialog a;  //创造一个框  自己定义的myDialog
a.setFixedSize(400,400);  //修改创建好的框的大小
a.exec();   //模态显示 卡住界面
           //用继承的方式实现myDialog 继承于QDialog


if(!a.stat)  //判断a中的stat 是否用户正常点击 是不成立的就关闭
    exit(0);  //ok为正常结束 ×为异常结束 非正常结束程序关闭


#endif
int s = myDialog::getstat();  //调用自定义的静态类 返回一个值给s
if(!s)                   //如果返回的不是正常值 关闭程序
    exit(0);


}


Widget::~Widget()
{


}

5.编写mydialog.h(添加需要的头文件声明对象)

#ifndef MYDIALOG_H
#define MYDIALOG_H


#include <QDialog> //继承与QDialog
#include <QLineEdit> //行编辑器
#include <QPushButton>  //按钮


class myDialog : public QDialog
{
Q_OBJECT     //保证可以使用信号与槽的机制
public:
myDialog();


public slots:
void ok_pushed() //ok按钮被按下发生的函数
{
    stat = true; //单机下按钮后变为true 点击第一个框×不会对stat标志进行操作
    close(); //变为true并关闭对话框
}
public:  //实现一个静态函数
static int getstat()  //getstat为类名 用类名可以直接调用该函数
{


    myDialog a;
    a.setFixedSize(400,400);
    a.exec();


    return a.stat;
}


private:
//添加自己想要的东西
QLineEdit *le;
QPushButton *pb;


int stat;  //设置一个标志


};


#endif // MYDIALOG_H

6.编写 mydialog.cpp,完成基本框架

#include "mydialog.h"


#include <QVBoxLayout> //垂直布局
myDialog::myDialog()
{
le = new QLineEdit("hello");


pb = new QPushButton("ok");


QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(le);
vbox->addWidget(pb);


setLayout(vbox);
stat = false;  //对话框启动时的标志


connect(pb,SIGNAL(clicked(bool)),this,SLOT(ok_pushed()));//连接按钮的槽


}

7.具体编写步骤

(1).编写widget.cpp加入头文件mydialog.h
(2).编写mydialog.h 添加需要的头文件声明对象
(3).编写mydialog.cpp,完成基本框架
(4).在mydialog.h中建立标志int stat; 标志按什么结束
(5).在mydialog.h中置槽函数 获取ok按钮被按下发生的槽函数
(6).在mydialog.cpp 中设置对话框启动标志 stat = false;
(7).修改widget.cpp 程序框一执行完后做出一判断
(8).在mydialog.h实现静态函数
(9).在mydialog.cpp连接按钮的信号与槽

8.运行结果

在这里插入图片描述
在这里插入图片描述

在对话框一种输入,点击ok,弹出后续对话框.

三、总结

自定义对话框实现步骤复杂,仔细构思后,再一步一步去实现相应功能。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Qt自定义对话框可以添加按钮。您可以使用Qt提供的QPushButton来创建按钮,并将其添加到自定义对话框。通过设置按钮的文本、图标和信号槽,您可以实现按钮的功能和交互。 以下是一个简单的示例代码,演示如何在Qt自定义对话框添加按钮: ```cpp #include <QDialog> #include <QPushButton> #include <QVBoxLayout> class CustomDialog : public QDialog { Q_OBJECT public: CustomDialog(QWidget *parent = nullptr) : QDialog(parent) { // 创建按钮 QPushButton *okButton = new QPushButton("OK", this); QPushButton *cancelButton = new QPushButton("Cancel", this); // 创建布局 QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(okButton); layout->addWidget(cancelButton); // 连接按钮的信号槽 connect(okButton, &QPushButton::clicked, this, &CustomDialog::onOkClicked); connect(cancelButton, &QPushButton::clicked, this, &CustomDialog::onCancelClicked); } signals: void okClicked(); void cancelClicked(); private slots: void onOkClicked() { emit okClicked(); close(); } void onCancelClicked() { emit cancelClicked(); close(); } }; ``` 在这个示例,我们创建了一个名为CustomDialog自定义对话框。在构造函数,我们创建了两个按钮(OK和Cancel),并将它们添加到垂直布局。然后,我们连接了按钮的clicked信号到对应的槽函数,以便在按钮被点击时执行相应的操作。 您可以根据需要自定义按钮的样式、位置和功能。希望这个示例能够帮助您理解如何在Qt自定义对话框添加按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值