Qt_File基本操作

#include "menu_test.h"
#include "time.h"

Menu_Test::Menu_Test(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.action_O, SIGNAL(triggered()), this, SLOT(openFileDialog()));
connect(ui.action_F, SIGNAL(triggered()), this, SLOT(changeFontDialg()));
connect(ui.action_C, SIGNAL(triggered()), this, SLOT(changeFontColor()));
connect(ui.action_A, SIGNAL(triggered()), this, SLOT(aboutIt()));
connect(ui.action_S, SIGNAL(triggered()), this, SLOT(saveFileName()));
connect(ui.action_J, SIGNAL(triggered()),this,SLOT(screenShot()));
m_txtCode = QTextCodec::codecForName("GBK");
m_reslut = new QString;
m_timer = new QTimer();
m_timer->setInterval(1000);
m_timer->start();
connect(m_timer, SIGNAL(timeout()), this, SLOT(onTimerOut()));
connect(ui.action_P, SIGNAL(triggered()), this, SLOT(openGraphics()));

m_image = new QImage();
m_index = 1;
for (int i = 0; i < 5; i++)
{
m_index = rand() % 10;
qDebug() << m_index;
}
}

Menu_Test::~Menu_Test()
{
QMessageBox::StandardButton rb = QMessageBox::question(NULL, "Show Qt", "Do you want to show Qt dialog?", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
if (rb == QMessageBox::Yes)
{
QMessageBox::aboutQt(NULL, "About Qt");
}
else
{
QMessageBox::information(this, "Title", "You are clever!");
}
}
void Menu_Test::openFileDialog()
{
QString file_name = QFileDialog::getOpenFileName(this, "OpenFile", "/", m_txtCode->toUnicode("文本文件(*.txt);C++文件(*.cpp)"), 0);
if (!file_name.isEmpty())
{
QMessageBox::information(this, "Tip", "Open File");
setWindowTitle(file_name);
QFile file(file_name);
if (!file.open(QIODevice::ReadOnly|QIODevice::Text))
{
return;
}
QTextStream stream(&file);
QString line_in;
while (!stream.atEnd())
{
line_in = stream.readLine();
m_reslut->append(line_in + "\n");
}
ui.textEdit->setText(*m_reslut);
}
else
{
qDebug() << "File Name is empty";
}
}
void Menu_Test::changeFontDialg()
{
bool ok;
const QFont& font = QFontDialog::getFont(&ok,
ui.textEdit->font(),
this,
tr("fontDialog"));
if (ok)
{
ui.textEdit->setFont(font);
}
QTextCursor cur = ui.textEdit->textCursor();//返回当前光标对象
cur.setPosition(2, QTextCursor::MoveAnchor);//移到起始位置
cur.movePosition(QTextCursor::NoMove, QTextCursor::KeepAnchor, 3);//移动结束位置
cur.select(QTextCursor::WordUnderCursor);//选择
ui.textEdit->setTextCursor(cur);
}
void Menu_Test::changeFontColor()
{
QPalette palette = ui.textEdit->palette();
const QColor & color =QColorDialog::getColor(palette.color(QPalette::Base), this);
if (color.isValid())
{
palette.setColor(QPalette::Window, Qt::lightGray);
palette.setColor(QPalette::Text, color);
ui.textEdit->setPalette(palette);
}
}
void Menu_Test::aboutIt()
{
QDialog* dig = new QDialog;
dig->setWindowTitle(QString("About This It.."));
QMessageBox message(QMessageBox::NoIcon, "Title","this is butterfly");
QDir *dir = new QDir;
QString path=dir->currentPath();
message.setIconPixmap(QPixmap("1.png")); //像素映射
message.exec();
dig->exec();
}
void Menu_Test::saveFileName()
{
//QFileDialog提供的始终是Qt自己绘制的对话框
QFileDialog* saveFileDialog = new QFileDialog(this);
QString* fileName = new QString();
//if (saveFileDialog->exec())
*fileName = saveFileDialog->getSaveFileName();
saveFileDialog->setWindowTitle(QString("Save File"));
saveFileDialog->setFileMode(QFileDialog::AnyFile);
saveFileDialog->setNameFilter(tr("file (*.cpp *.c *.txt)"));
if (fileName->size() > 0)
{
QFile *file = new QFile();
file->setFileName(*fileName + ".txt");
file->open(QIODevice::WriteOnly | QIODevice::Text);
QString s = ui.textEdit->toPlainText();
QTime time = QTime::currentTime();
QDate date = QDate::currentDate();
file->write("wirte time:" +date.toString(tr("yyyy--MM--dd ")).toLatin1() +time.toString("hh::mm::ss\n").toLatin1()+ s.toLatin1());
file->reset();
file->close();
}
delete fileName;
fileName = NULL;
return;
}
void Menu_Test::onTimerOut()
{
QTime time = QTime::currentTime();
setWindowTitle(time.toString(("hh:mm:ss")));
if (m_image != NULL)
{
QString temp="/" + QString::number(m_index).append(".png");
QDir dir;
QString currentPath = dir.currentPath();
if (m_image->load(currentPath.append(temp)))
{
QGraphicsScene * scene = new QGraphicsScene;
scene->addPixmap(QPixmap::fromImage(*m_image));
ui.graphicsView->setScene(scene);
ui.graphicsView->show();
}
m_index++;
if (m_index>5)
{
m_index = 1;
}
}
}
void Menu_Test::openGraphics()
{
QString fileName = QFileDialog::getOpenFileName(
this, "open image file",
".",
"Image files (*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;All files (*.*)");
if (fileName != "")
{
if (m_image->load(fileName))
{
QGraphicsScene *scene = new QGraphicsScene;
scene->addPixmap(QPixmap::fromImage(*m_image));
ui.graphicsView->setScene(scene);
//ui.graphicsView->resize(m_image->width() + 10, m_image->height() + 10);
ui.graphicsView->show();
}
}
}
void Menu_Test::screenShot()
{
QScreen *screen = QGuiApplication::primaryScreen();
QDateTime dt = QDateTime::currentDateTime();
QString filename = dt.toString("yyyyMMddhhmmss") + ".jpg";
screen->grabWindow(0).save(filename);
QMessageBox::information(this, "Title", "Save succeed");

QRegExp rx("(d+)");
QString str = "Offsets: 12 14 99 231 7";
QStringList list;
int pos = 0;

while ((pos = rx.indexIn(str, pos)) != -1)
{
list << rx.cap(1);
pos += rx.matchedLength();
qDebug() << list;
}
}
void Menu_Test::keyPressEvent(QObject* object, QEvent* event)
{
QKeyEvent* keyEvent;
if (event->type() == QEvent::KeyPress)
{
keyEvent = static_cast<QKeyEvent*>(event);
switch (keyEvent->key())
{
case Qt::Key_A:
qDebug() << "A";
break;
case Qt::Key_Up:
qDebug() << "Key_Up";
break;
case Qt::Key_Down:
qDebug() << "Key_Down";
break;
default:
int e = 0;
}
}
}

 

posted @ 2016-07-20 17:30  TheSongOfSoul  阅读(3058)  评论(0编辑  收藏  举报