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执行之,除了能够 ...
随机推荐
- android屏幕适配方法
android中图片适配是一件很棘手的事情,本篇文章详细的介绍屏幕显示的原理,为什么会资源文件中会存在 drawable-ldpi.drawable-mdpi.drawable-hdpi.drawab ...
- (转)hadoop三个配置文件的参数含义说明
hadoop三个配置文件的参数含义说明 1 获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配 ...
- 集合-字典(Dictionary)
字典(散列表):允许按照某个键来访问元素,能根据键快速查找元素,也可以自由添加,删除元素.比较像List<T>类,但没有list向后移动元素的性能开销. .net中最主要的字典类是Dict ...
- Android Studio实现Service AIDL
Android Studio实现Service AIDL [日期:2015-01-02] 来源:Linux社区 作者:teenyboy [字体:大 中 小] 今天要开发过程中要用到AID ...
- docker rancher 体验 (未完待续.....)
docker rancher 体验 官方 githubhttps://github.com/rancher/rancher 环境说明: 10.6.0.14010.6.0.18710.6.0.188 修 ...
- P3P解决cookie存取的跨域问题
最近在做一个流量统计的东西的时候,偶然发现IE在对iframe里面的页面写Cookie的时候有一些安全限制,导致读取Cookie不成功,找了好长时间的解决办法,重要找到如下的办法: 1.页面里的COO ...
- Sybase数据库的分页功能
项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘. ),@start int, @pageSize int as begin declar ...
- Linux 高可用(HA)集群基本概念详解
大纲一.高可用集群的定义二.高可用集群的衡量标准三.高可用集群的层次结构四.高可用集群的分类 五.高可用集群常用软件六.共享存储七.集群文件系统与集群LVM八.高可用集群的工作原理 推荐阅读: Cen ...
- 整理JRE瘦身或精简JRE
http://blog.csdn.net/xiaoping8411/article/details/6973887 版权声明:本文为博主原创文章,未经博主允许不得转载. 前不久给朋友做了一个桌面程序, ...
- 原来在ARC下还有这么多不同?!
1.ARC空声明变量 使用ARC的另一个优势是所有未初始化的变量默认都是"空值化"的.这意味着像下面这样的声明使用ARC编译后指向的是空值(nil): NSObject myObj ...