#include "testwindow.h"
#include <QPainter>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QFileDialog>
#include <QPainter>
#include <QTimer>
#include <QToolButton>
#include <QApplication>
#include <QLabel>
#define CONTENT_WIDE 500
#define CONTENT_HIGH 20
#define LABLE_X_DEBIGN 40
#define CONTENT_Y_DEBIGN LABLE_X_DEBIGN
#define CONTENT_Y_SPACE 20
#define CONTENT_X_DEBIGN LABLE_X_DEBIGN + 50
#define PIC_LENGTH 300
#define PIC_WIDETH 300
TestWindow::TestWindow(QWidget *parent)
: QWidget(parent)
{
mOpenBtn=new QPushButton("open",this);
mCloseBtn=new QPushButton("close",this);
connect(mOpenBtn,SIGNAL(clicked()),this,SLOT( openFile() ) );
connect(mCloseBtn, SIGNAL(clicked()),this, SLOT(close()));
//QHBoxLayout *btnLayout = new QHBoxLayout(this);
//btnLayout->addStretch();
//btnLayout->addWidget(mOpenBtn);
//btnLayout->addWidget(mCloseBtn);
//mainLayout = new QHBoxLayout;
mOpenBtn->setGeometry(QRect(700,400,50,20));
mCloseBtn->setGeometry(QRect(700,450,50,20));
//btnLayout->setGeometry(QRect(600,400,800,500));
//btnLayout->setContentsMargins(100,100,50,50);
//mainLayout->addStretch();
//mainLayout->addLayout(btnLayout);
//setLayout(mainLayout);
setWindowTitle(tr("jpeg image test"));
//this->setContentsMargins(100,100,50,50);
Title_lable.setParent(this);
Title_content.setParent(this);
Title_lable.setText("Title: ");
Title_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN, CONTENT_WIDE, CONTENT_HIGH);
Title_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN, CONTENT_WIDE, CONTENT_HIGH);
Album_lable.setParent(this);
Album_content.setParent(this);
Album_lable.setText("Album: ");
Album_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN + CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Album_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Artist_lable.setParent(this);
Artist_content.setParent(this);
Artist_lable.setText("Artist: ");
Artist_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+2*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Artist_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+2*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Year_lable.setParent(this);
Year_content.setParent(this);
Year_lable.setText("Year: ");
Year_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+3*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Year_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+3*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Date_lable.setParent(this);
Date_content.setParent(this);
Date_lable.setText("Date: ");
Date_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+4*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Date_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+4*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Time_lable.setParent(this);
Time_content.setParent(this);
Time_lable.setText("Time: ");
Time_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+5*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Time_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+5*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Genre_lable.setParent(this);
Genre_content.setParent(this);
Genre_lable.setText("Genre: ");
Genre_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+6*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Genre_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+6*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Length_lable.setParent(this);
Length_content.setParent(this);
Length_lable.setText("Length: ");
Length_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+7*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Length_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+7*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Size_lable.setParent(this);
Size_content.setParent(this);
Size_lable.setText("Size: ");
Size_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+8*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Size_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+8*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Track_lable.setParent(this);
Track_content.setParent(this);
Track_lable.setText("Track: ");
Track_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+9*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Track_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+9*CONTENT_Y_SPACE, CONTENT_WIDE, CONTENT_HIGH);
Comment_lable.setParent(this);
Comment_content.setParent(this);
Comment_content.setWordWrap(TRUE);
Comment_lable.setText("Comment: ");
Comment_lable.setGeometry(LABLE_X_DEBIGN, CONTENT_Y_DEBIGN+10*CONTENT_Y_SPACE, CONTENT_WIDE,CONTENT_HIGH);
Comment_content.setGeometry(CONTENT_X_DEBIGN, CONTENT_Y_DEBIGN+10*CONTENT_Y_SPACE, CONTENT_WIDE, 8*CONTENT_HIGH);
Pic_lable.setParent(this);
Pic_content.setParent(this);
Pic_lable.setText("Picture: ");
Pic_lable.setGeometry(LABLE_X_DEBIGN+500, CONTENT_Y_DEBIGN, CONTENT_WIDE, CONTENT_HIGH);
Pic_content.setGeometry(CONTENT_X_DEBIGN+500, CONTENT_Y_DEBIGN+CONTENT_Y_SPACE, PIC_LENGTH, PIC_WIDETH);
}
void TestWindow::setTextCode(ID3_ENCODING_e encoding)
{
if(encoding == ISO_8859_1)
{
code=QTextCodec::codecForName("GB2312");
}
else if(encoding == UTF8)
{
code=QTextCodec::codecForName("UTF-8");
}
else if(encoding == UTF16LE)
{
code=QTextCodec::codecForName("UTF-16LE");
}
else if(encoding == UTF16BE)
{
code=QTextCodec::codecForName("UTF-16BE");
}
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
QTextCodec::setCodecForTr(code);
}
void TestWindow::openFile()
{
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "."/*,
tr("Spreadsheet files (*.jpg)")*/);
if (!fileName.isEmpty()){
if(fileName.contains(".jpg", Qt::CaseInsensitive) || fileName.contains(".jpeg", Qt::CaseInsensitive))
{
mPixmap.load(fileName);
update();
}
else if(fileName.contains(".mp3", Qt::CaseInsensitive))
{
//QFileInfo fFile;
QImage mp3image;
ID3V2_FRAME_CONTENT_t *title;
ID3V2_FRAME_CONTENT_t *artist;
ID3V2_FRAME_CONTENT_t *album;
ID3V2_FRAME_CONTENT_t *year;
ID3V2_FRAME_CONTENT_t *date;
ID3V2_FRAME_CONTENT_t *time;
ID3V2_GENRE_FRAME_CONTENT_t *genre;
ID3V2_PIC_FRAME_CONTENT_t *picture;
ID3V2_FRAME_CONTENT_t *length;
ID3V2_FRAME_CONTENT_t *size;
ID3V2_FRAME_CONTENT_t *track;
ID3V2_FRAME_CONTENT_t *comment;
ID3_VERSION_e id3_ver;
//lable1->setText("jacky");
//label.setGeometry( 40, 40, 80, 40 );
//QLabel *lbl=new QLabel(QLabel::trUtf8("这是一段测试文本-测试QLabel的具体使用方法"));
GetID3Tag_FromFile(fileName.toUtf8().data(),2);
title = GetID3Tag_Title();
artist = GetID3Tag_Artist();
album = GetID3Tag_Album();
year = GetID3Tag_Year();
date = GetID3Tag_Date();
genre = GetID3Tag_Genre();
comment = GetID3Tag_Comment();
time = GetID3Tag_Time();
length = GetID3Tag_Length();
size = GetID3Tag_Size();
picture = GetID3Tag_Picture();
track = GetID3Tag_Track();
id3_ver = GetID3Tag_TagVersion();
if(picture->dataflag == 1)
{
GetID3Tag_SavePic("./pic.jpg");
picdata.loadFromData((const uchar *)picture->pic_header.pic_data,picture->pic_header.data_len);
Pic_content.setPixmap(picdata);
}
if(title->dataflag)
- 1
- 2
前往页