QT5 学习之路04---QT5基本对话框1

前言:由于目前学习到这里,加上学生时间有限,所以笔记就从这里开始,今后会补前面的笔记,当然会在重要的地方给予提示。笔记主要是通过一个一个的例子来加深对Qt的理解。

1 标准文件对话框

1.1基本功能

可以获取用户所打开或者保存的文件名。

1.2基本方法

1.3 构造函数

说明:第一个参数是父窗口, 第二个参数是对话框的标题名,第三个参数是默认路径,第四个参数是过滤器,对文件类型进行过滤。
QString filename;

filename = QFileDialog::getOpenFileName(this,
                            "title","/","c++ files(*.cpp):: headfile(*.h)");

1.4 小项目
1.4.1 项目说明
这里写图片描述
这里写图片描述
这里写图片描述
说明:通过主窗口点按钮,弹出文件对话框进行选择,并且在子窗口内显示文件的内容。
1.4.2主窗口头文件

ifndef MYDIALOG_H

define MYDIALOG_H

include

include

include

include “but1widget.h”

class MyDialog : public QDialog
{
Q_OBJECT

public:
MyDialog(QWidget *parent = 0);
~MyDialog();
But1Widget *wid1;

private:
QPushButton *but1;
QGridLayout *lay;
private slots:
void on_but1();
};

endif // MYDIALOG_H

1.4.3主窗口源文件

include “mydialog.h”

include

include

include

MyDialog::MyDialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle(“Dialog”);
lay = new QGridLayout(this);

but1 = new QPushButton("FileDialog");
lay->addWidget(but1,0,1);
connect(but1,SIGNAL(clicked()),
        this,SLOT(on_but1()));

}

MyDialog::~MyDialog()
{

}

void MyDialog::on_but1()
{
QString filename;
wid1 = new But1Widget();
filename = QFileDialog::getOpenFileName(this,
“title”);//标准文件对话框的静态成员函数
if (filename.isEmpty()) //判断是否选择了文件
return;
QFile *file = new QFile(filename);
if (file->open(QFile::ReadOnly))
{
QTextStream *stream = new QTextStream(file);
while (!stream->atEnd())
{
wid1->edit->append(stream->readLine());
}
}

file->close();


wid1->show();

}
1.4.4子窗口头文件

ifndef BUT1WIDGET_H

define BUT1WIDGET_H

include

include

include

class But1Widget : public QWidget
{
Q_OBJECT
public:
explicit But1Widget(QWidget *parent = 0);
QTextEdit *edit;
QVBoxLayout *vlay;
signals:

public slots:

};

endif // BUT1WIDGET_H

1.4.5子窗口源文件

include “but1widget.h”

But1Widget::But1Widget(QWidget *parent) :
QWidget(parent)
{
vlay = new QVBoxLayout(this);
edit = new QTextEdit(this);
vlay->addWidget(edit,0,Qt::AlignVCenter);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值