Главная страница

Программа просмотра графических файлов.

Программная платформа Windows XP SP3. Язык С++.

Библиотека Qt 3.3.8 (неофициальная версия для Windows,

свободно есть в интернете). Приложение с графическим интерфейсом.

Программа состоит из трех файлов с кодом viewimage1.cpp, viewimage1.h, main.cpp и

графического файла pri1.jpg, который является заставкой после запуска программы.

Файл pri1.jpg следует записать в папку "images",

ниже размещен этот файл для сохранения (горное озеро):

Программная платформа Win32 - это один из вариантов.

Библиотека Qt 3.3.8 работает на дистрибутивах Linux

(Ubuntu, Debian, Fedora и других).

Файл "viewimage1.cpp" #include <qwidget.h> #include <qlabel.h> #include <qpushbutton.h> #include <qstring.h> #include <qtimer.h> #include <qfiledialog.h> #include <qdir.h> #include <qptrlist.h> #include "viewimage1.h" bool slide; QString foto="pri1.jpg"; QMyWidget::QMyWidget():QWidget(0, 0, 0) { setCaption("Программа просмотра изображений"); setGeometry(0,30,1000,720); lab1=new QLabel(this,"label1",0); lab1->setGeometry(0,0,1000,660); lab1->setPixmap( QPixmap::fromMimeSource( foto ) ); QPushButton *pb1= new QPushButton("Вперед",this,"pushb1"); pb1->setGeometry(760,670,90,20); QObject::connect(pb1,SIGNAL(clicked()),this,SLOT(vperiod())); QPushButton *pb2= new QPushButton("Назад",this,"pushb2"); pb2->setGeometry(760,690,90,20); QObject::connect(pb2,SIGNAL(clicked()),this,SLOT(nazad())); QPushButton *pb3= new QPushButton("Выход",this,"pushb3"); pb3->setGeometry(860,680,90,30); QObject::connect(pb3,SIGNAL(clicked()),this,SLOT(close())); QPushButton *pb4= new QPushButton("Слайд вперед",this,"pushb4"); pb4->setGeometry(540,670,100,20); QObject::connect(pb4,SIGNAL(clicked()),this,SLOT(slideTRUE())); QObject::connect(pb4,SIGNAL(clicked()),this,SLOT(sliderfor())); QPushButton *pb5= new QPushButton("Слайд назад",this,"pushb5"); pb5->setGeometry(540,690,100,20); QObject::connect(pb5,SIGNAL(clicked()),this,SLOT(slideTRUE())); QObject::connect(pb5,SIGNAL(clicked()),this,SLOT(sliderback())); QPushButton *pb6= new QPushButton("Слайд стоп",this,"pushb6"); pb6->setGeometry(650,680,100,30); QObject::connect(pb6,SIGNAL(clicked()),this,SLOT(sliderstop())); QPushButton *pb7= new QPushButton("Открыть,this,"pushb7"); pb7->setGeometry(450,680,80,30); QObject::connect(pb7,SIGNAL(clicked()),this,SLOT(viborfaila())); lab2=new QLabel(this,"label2",0); lab2->setGeometry(10,670,400,20); lab3=new QLabel(this,"label3",0); lab3->setGeometry(10,690,330,20); lab3->setText(foto); timer1 = new QTimer( 0 ); connect( timer1, SIGNAL(timeout()), this, SLOT(vperiodsl()) ); timer2= new QTimer( 0 ); connect( timer2, SIGNAL(timeout()), this, SLOT(nazadsl()) ); } void QMyWidget::vperiod() { ++it; lab3->setText(*it); lab1->setPixmap( QPixmap::fromMimeSource(dp+"/"+*it ) ); } void QMyWidget::nazad() { --it; lab3->setText(*it); lab1->setPixmap( QPixmap::fromMimeSource(dp+"/"+*it ) ); } void QMyWidget::sliderfor() { timer1->start( 2000, TRUE ); // 2 seconds single-shot timer } void QMyWidget::vperiodsl() { if(slide){ ++it; lab1->setPixmap( QPixmap::fromMimeSource(dp+"/"+*it) ); lab3->setText(*it); sliderfor();} } void QMyWidget::sliderback() { timer2->start( 2000, TRUE ); // 2 seconds single-shot timer } void QMyWidget::nazadsl() { if(slide){ --it; lab1->setPixmap( QPixmap::fromMimeSource( dp+"/"+*it ) ); lab3->setText(*it); sliderback();} } void QMyWidget::sliderstop() { slide=FALSE; } void QMyWidget::slideTRUE() { slide=TRUE; } void QMyWidget::viborfaila() { QFileDialog *fd=new QFileDialog(0,0,TRUE); fd->setGeometry(0,0,500,500); fd->setCaption("Выберите графический файл"); fd->exec(); QString filename=fd->selectedFile(); dp=fd->dirPath(); lab1->setPixmap( QPixmap::fromMimeSource(filename ) ); lab2->setText(dp); dir1=new QDir(dp); sl1=dir1->entryList(QDir::Files | QDir::NoSymLinks); it=sl1.begin(); lab3->setText(*it); } Файл "viewimage1.h" #ifndef QVIEWIMAGE1_H #define QVIEWIMAGE1_H #include <qwidget.h> #include <qlabel.h> #include <qstring.h> #include <qdir.h> #include <qstringlist.h> class QMyWidget : public QWidget { Q_OBJECT public: QMyWidget(); public slots: void vperiod(); void nazad(); void sliderfor(); void vperiodsl(); void sliderback(); void nazadsl(); void sliderstop(); void slideTRUE(); void viborfaila(); public: QLabel *lab1; QLabel *lab2; QLabel *lab3; QTimer *timer1; QTimer *timer2; QStringList list1; QDir *dir1; QString dp; QStringList sl1; QStringList::Iterator it; }; #endif Файл "main.cpp" #include <qapplication.h> #include "viewimage1.h" int main(int argc,char*argv[]) { QApplication appl(argc,argv); QMyWidget *wid1=new QMyWidget(); appl.connect( &appl, SIGNAL(lastWindowClosed()), &appl, SLOT(quit()) ); appl.setMainWidget(wid1); wid1->show(); return appl.exec(); } Главная страница
Хостинг от uCoz