QT第四天学习
回顾:
1.信号与槽
public slots:
//先声明后实现
signals:
//只需要声明
connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));
信号可以与槽相连
信号可以与信号相连
connect(sender,SIGNAL(signal()),receiver,SIGNAL(signal()));
信号与槽的参数
connect(sender,SIGNAL(signal(int,QString)),receiver,SLOT(slot(int,QString)));
emit mysignal(110,"hello");
void myslot(int i,QString str)
{
qDebug() << i;
qDebug() << str;
}
-----------------------------
文件:
1.QFile
1.打开文件
QFile file("a.txt");//构建文件对象
bool ok = file.open(OpenMode mode);//打开文件,需要指定打开方式
if(!ok)//判断是否打开成功
{
//error
}
2.操作文件
read()/readLine()/readAll()/getchar()//读
write()/putchar()//写
seek()//定位
atEnd()//判断文件位置是否到末尾,如果到了文件末尾,返回true
error()//获取出错原因
3.关闭文件
file.close();//关闭文件
练习:
copy 一张图片
2.QTextSream
3.QDataSream
4.QFileInfo
代码1
main.cpp
//QFile类的使用
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
// w.show();
return a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QFile>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// //1.
// QFile file("a.txt");
// bool ok = file.open(QIODevice::WriteOnly);
// if(!ok)
// {
// return;
// }
// //2.
// file.write("hello qt");
// file.putChar('A');
// //3.
// file.close();
//--------------------------------------
//1.
QFile file;
file.setFileName("Makefile");
bool ok = file.open(QIODevice::ReadOnly);
if(!ok)
{
return;
}
//2.
QByteArray arr = file.readAll();
qDebug() << "arr = " << arr;
//file.read();
//file.readLine()
//file.getChar();
//3.
file.close();
}
Widget::~Widget()
{
delete ui;
}
代码二
main.cpp
//QTextSream类的使用
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QTextStream>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//1.打开文件
// QFile file("a.txt");
// if(!file.open(QFile::ReadWrite))
// {
// qDebug() << file.error();
// return;
// }
// //2.操作文件
// QTextStream out(&file);//把文本流与文件对象关联起来
// out << "hello qt 123";
// //3.关闭文件
// file.close();
//-----------------------------------
// QFile file("a.txt");
// bool ok = file.open(QIODevice::ReadWrite);
// if(!ok)
// {
// return;
// }
// QTextStream in(&file);
// QString str2 ,str1;
// int a;
// in >> str1;
// in >> str2;
// in >> a;
// qDebug() << str1;
// qDebug() << str2;
// qDebug() << a;
// file.close();
//---------------------------
// QString str = "hello qt 456";//sscanf()
// QTextStream in(&str);
// QString str1,str2;
// QString a;
// in >> str1 >> str2 >> a;
// qDebug() << str1;
// qDebug() << str2;
// qDebug() << a;
// in << "789";
// qDebug() << str;
//----------------------------------
// QByteArray arr = "hello qt 456";
// QTextStream in(&arr);//
// QString str1,str2;
// int a;
// in >> str1 >> str2 >> a;
// qDebug() << str1;
// qDebug() << str2;
// qDebug() << a;
// qDebug() << arr;
//-------------------------------
QByteArray arr = "hello qt 456";
qDebug() << arr.size();
QTextStream in(arr,QIODevice::ReadWrite);//
QString str1,str2;
int a;
in >> str1 >> str2 >> a;
qDebug() << str1;
qDebug() << str2;
qDebug() << a;
in << "789";//文本流写入有问题,数据流会不会也有问题呢?
qDebug() << arr.size();
qDebug() << arr;
}
Widget::~Widget()
{
delete ui;
}
代码三
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDataStream>
#include <QFile>
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// QFile file("a.txt");
// if(!file.open(QIODevice::ReadWrite))//如果打开文件失败
// {
// return;
// }
// QDataStream out(&file);
// QString str = "hello qt 123";
// QString str2;
// out << str;
// out.device()->seek(0);//文件定位
// out >> str2;
// qDebug() << str2;
// file.close();
// QByteArray arr;
// QDataStream in(&arr,QIODevice::ReadWrite);
// QString s = "hello";
// int a = 123;
// in << s;
// in << a;
// QString s1;
// int a1;
// in.device()->seek(0);
// in >> s1;
// in >> a1;
// qDebug() << s1;
// qDebug() << a1;
ui->comboBox->setCurrentIndex(1);
QString str = ui->comboBox->currentText();
qDebug() << str;
//111
}
Widget::~Widget()
{
delete ui;
}
代码四
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
} widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QFileInfo>
#include <QDebug>
#include <QDateTime>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QFileInfo info("Makefile");
bool ok = info.exists();
QDateTime dt = info.created();
QDateTime curTime = QDateTime::currentDateTime();
qDebug() << curTime.toString();
qDebug() << dt.toString("yyyy/MM/dd hh:mm:ss");
qDebug() << ok;
qDebug() << info.size();
ok = info.isReadable();
ui->checkBox->setChecked(ok);
}
Widget::~Widget()
{
delete ui;
}
QT第四天学习的更多相关文章
- apue第四章学习总结
apue第四章学习总结 4.1.若以stat函数去替换lstat函数,会发生: 原来的目录路径: $:~/workspace/apue2/include$ ls -l apue.h abc lrwxr ...
- Fedora安装qt总结四种方法
在fedora上安装qt有四种方法,本人由于初次接触fedora,所以还是耐心的把三个方法都测试了一遍. 1. 下载源码,手动编译,选择路径安装,请参考<fedora15下搭建QT开发环境及编 ...
- Factorization Machines 学习笔记(四)学习算法
近期学习了一种叫做 Factorization Machines(简称 FM)的算法.它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...
- 《Linux内核设计与实现》第四章学习笔记
<Linux内核设计与实现>第四章学习笔记 ——进程调度 姓名:王玮怡 学号:20135116 一.多任务 1.多任务操作系统的含义 多任务操作系统就是能同时并发地交 ...
- 《Linux内核设计与实现》第四章学习笔记——进程调度
<Linux内核设计与实现>第四章学习笔记——进程调 ...
- Spring实战第四章学习笔记————面向切面的Spring
Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我 ...
- 孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3
孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十天. 今天继续学习mongoDB的简单操作, ...
- Qt Installer Framework的学习(三)
Qt Installer Framework的学习(三) Qt Installer Framework的样例中.通常是这种:config目录一般放了一个config.xml文件,包括的是安装配置xml ...
- Qt Installer Framework的学习(二)
Qt Installer Framework的学习(二) Qt Installer Framework的一些操作能够使用最常见的Qt项目来表示,也就是说,书写pro文件,使用qmake执行之,除了能够 ...
随机推荐
- 母亲的牛奶(milk)
母亲的牛奶(milk) 题目描述 农民约翰有三个容量分别是A.B.C升的桶,A.B.C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的.有时,约翰把牛奶从一个桶倒到另一个桶中,直 ...
- UIImage将图片写入本地相册
UIImageWriteToSavedPhotosAlbum(<#UIImage *image#>, <#id completionTarget#>, <#SEL com ...
- js_设置光标到文本的最后位置
div_right_table_tr1_td3_input2.focus(function(){ if(input1.setSelectionRange){//火狐 input1.setSelecti ...
- Android------>TableLayout表格布局方式
main.xml表格代码分析 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmln ...
- ecos的app处理类
get 获取指定app的对象实例 参数 $app_name 返回指定app name的app类实例 app::get('desktop') render 获取base_render类的实例 base_ ...
- Windows系统字体与文件对照表
源:Windows系统字体与文件对照表 宋体 (TrueType) = SIMSUN.TTF 黑体 (TrueType) = simhei.ttf 楷体_GB2312 (TrueType) = sim ...
- postgres 数据库命令行客户端psql的使用命令总结
1.切换到 postgres 用户: 2.输入: psql , 进入到postgresql的客户端psql: 3.\l 查看当前所有的数据库: 4.psql database1 ...
- Jedis使用示例
http://javacrazyer.iteye.com/blog/1840161 http://www.cnblogs.com/edisonfeng/p/3571870.html
- sublime text 主题推荐
Soda Spacegray Flatland Tomorrow Base 16 Solarized Predawn itg.flat 其他所有的配色方案和主题.
- Sequence Classification
Natural Language Processing with Python Charpter 6.1 import nltk from nltk.corpus import brown def p ...