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