中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

電子商務網站建設的階段化分析b2b電子商務平臺有哪些

電子商務網站建設的階段化分析,b2b電子商務平臺有哪些,南京列表網免費發(fā)布信息,建設娛樂城網站目錄參考結構PicturePlay.promain.cpppictureplay.hpictureplay.cpppictureplay.ui效果參考 Qt圖片瀏覽器 QT制作一個圖片播放器 Qt中自適應的labelpixmap充滿窗口后,無法縮小只能放大 可以顯示jpg、jpeg、png、bmp??梢詮碾娔X上拖動圖到窗口并顯示出來或者打開文件…

目錄

  • 參考
    • 結構
    • PicturePlay.pro
    • main.cpp
    • pictureplay.h
    • pictureplay.cpp
    • pictureplay.ui
  • 效果

參考

Qt圖片瀏覽器

QT制作一個圖片播放器

Qt中自適應的label+pixmap充滿窗口后,無法縮小只能放大

可以顯示jpg、jpeg、png、bmp。可以從電腦上拖動圖到窗口并顯示出來或者打開文件選擇,定時滾動圖片

重載實現dragEnterEvent(拖拽)、dropEvent(拖拽放下)、resizeEvent(窗口大小改變)

結構

在這里插入圖片描述

PicturePlay.pro

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \pictureplay.cppHEADERS += \pictureplay.hFORMS += \pictureplay.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetRESOURCES += \res.qrc

main.cpp

#include "pictureplay.h"#include <QApplication>
#include<QFile>
int main(int argc, char *argv[])
{QApplication a(argc, argv);// 加載樣式文件QFile file(":/style.qss");/*判斷文件是否存在*/if(file.exists()){file.open(QFile::ReadOnly);// 以只讀的方式打開//QString styleSheet=QLatin1String(file.readAll());// 以Latin-1編碼的字符串的方式保存讀出的結果QString styleSheet=QString(file.readAll());// 以默認編碼的字符串的方式保存讀出的結果qApp->setStyleSheet(styleSheet);// 設置全局樣式file.close();// 關閉文件}PicturePlay w;w.show();return a.exec();
}

pictureplay.h

#ifndef PICTUREPLAY_H
#define PICTUREPLAY_H#include <QWidget>
#include <QFile>
#include <QDir>
#include <QTimer>
#include <QThread>
#include <QFileDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class PicturePlay; }
QT_END_NAMESPACEclass PicturePlay : public QWidget
{Q_OBJECTpublic:PicturePlay(QWidget *parent = nullptr);~PicturePlay();
private slots:void myautoPhoto(); //自動播放函數void showDinamicPhoto(QString path);//動態(tài)圖播放(格式為gif)void on_pathBtn_clicked();//瀏覽:打開目錄void on_autoPhoto_clicked(bool checked);//自動播放選擇void on_photoList_clicked(const QModelIndex &index);//單擊播放圖片void my_currentRowChanged(int Row);// // 當前項變化void on_cleanBtn_clicked();//清除private:QString Dir;//打開文件的路徑QString tempDir; //照片的絕地路徑QVector<QString> photoPath;//存放照片相對路徑的容器QTimer *mtime; //定時器QString delayTime; //延時間隔bool autoFlag; //判斷是否進入的自動播放格式int num; //照片張數// 如果文件的后綴名是jpg、jpeg、bmp或png,則接受拖放事件,否則忽略拖放事件QStringList acceptedFileTypes;void dragEnterEvent(QDragEnterEvent *event)override;//拖進事件void dropEvent(QDropEvent *event)override;// 拖進放下事件void resizeEvent(QResizeEvent *event)override;//用于在窗口大小改變時處理事件QPixmap pixmap;
private:Ui::PicturePlay *ui;
};
#endif // PICTUREPLAY_H

pictureplay.cpp

#include "pictureplay.h"
#include "ui_pictureplay.h"
#include<QDebug>
#include<QMessageBox>
#include<QMovie>
#include <QDragEnterEvent>
#include <QDropEvent>
#include <QMimeData>
PicturePlay::PicturePlay(QWidget *parent): QWidget(parent), ui(new Ui::PicturePlay)
{ui->setupUi(this);this->setWindowTitle("圖片播放器");this->setWindowIcon(QIcon(":/ImageEye.jpg"));this->setAcceptDrops(true);//設置允許向窗口拖入圖片this->setMinimumSize(QSize(400,300));// 設置最小值ui->photoShow->setAlignment(Qt::AlignCenter);  //居中顯示//自適應的label+pixmap充滿窗口后,無法縮小只能放大ui->photoShow->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);// Ignored忽略// 設置拉伸因子(默認縮到最小時失效:一樣大小)ui->horizontalLayout_2->setStretch(1,3);//設置窗口布局,(此時控件會隨窗口縮放)this->setLayout(ui->horizontalLayout_2);//  設置水平布局控件到邊框距離(左,上,右,下)ui->horizontalLayout_2->setContentsMargins(5,0,5,0);ui->photoPath->setFocusPolicy(Qt::NoFocus);//無法獲得焦點,自然無法輸入,其他文本控件類似ui->photoPath->setPlaceholderText("絕對路徑");ui->delayEdit->setPlaceholderText("秒");//不顯示行向滾動條,子項文本過長自動顯示...ui->photoList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);num=0; //照片張數delayTime.clear(); //延時間隔mtime = new QTimer(this);//連接自動播放槽函數connect(mtime,SIGNAL(timeout()),this,SLOT(myautoPhoto()));connect(ui->photoList,SIGNAL(currentRowChanged(int)),this,SLOT(my_currentRowChanged(int)));// 如果文件的后綴名是jpg、jpeg、bmp或png,則接受拖放事件,否則忽略拖放事件acceptedFileTypes.append("jpg");acceptedFileTypes.append("jpeg");acceptedFileTypes.append("bmp");acceptedFileTypes.append("png");acceptedFileTypes.append("gif");
}PicturePlay::~PicturePlay()
{delete ui;
}
//自動播放函數
void PicturePlay::myautoPhoto()
{tempDir.clear();tempDir=photoPath.at(num); //從容器中找到要播放的照片的相對路徑ui->photoList->setCurrentRow(num);// QListWidget項跳動if(tempDir.endsWith(".gif")  || tempDir.endsWith(".Gif")){showDinamicPhoto(tempDir);num++;}else if(!(tempDir.endsWith(".gif")  || tempDir.endsWith(".Gif"))){// 內容是否自動縮放,參數true自動縮放ui->photoShow->setScaledContents(true);//顯示圖片的全部pixmap.load(tempDir);// 更新全局圖片ui->photoShow->setPixmap(QPixmap(tempDir));//顯示圖片//判斷自動播放的時候是否播放到了最后一張圖片,如果是則停止自動播放if(num ==  (photoPath.count()-1)){//qDebug()<<num;if(ui->loopPlayback->checkState()==Qt::Checked)//循環(huán)重放{num = -1;// 下面num++,為了循環(huán)重放回到第一張圖片qDebug()<<num;}else{mtime->stop();num = 0;if(autoFlag)//選中自動播放的情況{autoFlag = false;}//qDebug()<<num;ui->autoPhoto->setCheckState(Qt::Unchecked);//把自動播放按鈕置于沒有選擇的狀態(tài)}}if(autoFlag){num++;}}
}
//動態(tài)圖播放(格式為gif)
void PicturePlay::showDinamicPhoto(QString path)
{QMovie *movie = new QMovie(path);  // path圖片路徑movie->start(); //開始播放動態(tài)圖ui->photoShow->setMovie(movie); //將圖片設置為為動態(tài)ui->photoShow->setScaledContents(true); //盡可能完整的播放整張動圖 ,此處要設置為true
}//瀏覽:打開目錄
void PicturePlay::on_pathBtn_clicked()
{Dir = QFileDialog::getExistingDirectory(this);//獲取本文件所在的具體路徑//qDebug()<<"路徑:"<<Dir;ui->photoPath->setText(Dir);//顯示打開的文件的具體路徑QDir dir(Dir);QStringList file;QFileInfoList fileList = dir.entryInfoList(file,QDir::Files); //獲取目錄下的文件QString fileDir; //保存圖片所在的路徑//列出目錄下的文件for(int i=0;i<fileList.count();i++){QFileInfo info = fileList.at(i);fileDir.clear();if(info.fileName() == "." || info.fileName() == "..") //跳過這兩個目錄{continue;}// 檢查文件的后綴名是否在接受的文件類型列表中;(獲取文件的后綴名,并將其轉換為小寫字母)if(!acceptedFileTypes.contains(info.suffix().toLower())){continue;}fileDir+=Dir + "/";QString filename = info.fileName();fileDir+=filename;photoPath.append(fileDir);// 把圖片的路徑裝到容器中QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName());//建立文件縮小圖標item->setToolTip(info.fileName());// tip提示item->setTextAlignment(Qt::AlignCenter);//設置item項中的文字位置ui->photoList->addItem(item);//把圖片相對路徑顯示到窗口中}if(ui->photoList->count()==0){QListWidgetItem *item = new QListWidgetItem("無合適圖片");item->setTextAlignment(Qt::AlignCenter);//設置item項中的文字位置ui->photoList->addItem(item);//把圖片相對路徑顯示到窗口中}
}//自動播放選擇
void PicturePlay::on_autoPhoto_clicked(bool checked)
{if(ui->delayEdit->text().isEmpty()){QMessageBox::warning(this,"提示","請輸入需要間隔的播放時間(秒)");//把按鈕重新置于沒有被選中的狀態(tài);不要用setCheckable()函數[不可用],很容易出錯ui->autoPhoto->setCheckState(Qt::Unchecked);return;}else if(ui->photoList->count() == 0){QMessageBox::warning(this,"警告","還沒有可以播放的圖片");ui->autoPhoto->setCheckState(Qt::Unchecked); //把按鈕重新置于沒有被選中的狀態(tài)return;}else if(checked) //啟動定時器{delayTime = ui->delayEdit->text();mtime->start(delayTime.toInt()*1000);//啟動定時器并設置播放時間間隔autoFlag = true;// 選中自動播放}else if(!checked)//停止定時器{mtime->stop();//停止定時器delayTime.clear();autoFlag = false;}
}//單擊播放圖片
void PicturePlay::on_photoList_clicked(const QModelIndex &index)
{qDebug()<<"單擊播放圖片";Q_UNUSED(index);//忽略編譯器發(fā)出的警告,表明變量event未使用//如果選中了自動播放的情況下,點擊列表中的內容,則停止自動播放if(autoFlag) //選中自動播放的情況{mtime->stop();//把按鈕重新置于沒有被選中的狀態(tài);不要用setCheckable()函數[不可用],很容易出錯ui->autoPhoto->setCheckState(Qt::Unchecked);autoFlag = false;}num = ui->photoList->row(ui->photoList->currentItem()); //獲取當前點擊的內容的行號//在沒有選中自動播放的情況下,判斷當前是否點擊了最后一張照片,如果是最后一張照片,在選中自動播放的情況下讓它返回到第一張照片if(!autoFlag&&num == ui->photoList->count()){num = 0;}tempDir.clear();/*tempDir+=Dir+"/";QString path = ui->photoList->currentItem()->text();tempDir+=path*/;tempDir=photoPath.at(num); //從容器中找到要播放的照片的相對路徑//判斷是否是動態(tài)圖;endsWith()字符串結尾if(tempDir.endsWith(".gif") || tempDir.endsWith(".Gif")){showDinamicPhoto(tempDir);}else{// 內容是否自動縮放,參數true自動縮放ui->photoShow->setScaledContents(true);//顯示圖片的全部pixmap.load(tempDir);// 更新全局圖片ui->photoShow->setPixmap(QPixmap(tempDir));//顯示圖片}
}
// 當前項變化
void PicturePlay::my_currentRowChanged(int Row)
{qDebug()<<"當前項變化:"<<Row;
}
//拖進事件
void PicturePlay::dragEnterEvent(QDragEnterEvent *event)
{// 用于檢查拖放的數據是否包含URL,并且獲取拖放事件中的URL數量==1if(event->mimeData()->hasUrls()&&event->mimeData()->urls().count()==1){// 獲取拖放事件中的第一個URL的本地文件路徑QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());// 檢查文件的后綴名是否在接受的文件類型列表中;(獲取文件的后綴名,并將其轉換為小寫字母)if(acceptedFileTypes.contains(file.suffix().toLower())){event->acceptProposedAction();//表明用戶可以在窗口部件上拖放對象[接受拖放事件的操作]}}
}
// 拖進放下事件
void PicturePlay::dropEvent(QDropEvent *event)
{// 獲取拖放事件中的第一個URL的本地文件路徑QFileInfo file(event->mimeData()->urls().at(0).toLocalFile());//qDebug()<<"絕對路徑:"<<file.absoluteFilePath();//從文件中加載圖片,參數file.absoluteFilePath()表示包含文件名的絕對路徑,load()返回一個bool值,表示是否加載成功if(pixmap.load(file.absoluteFilePath())){// 將圖片縮放到指定大小,參數ui->label->size()表示縮放的大小,Qt::KeepAspectRatio表示保持圖片的寬高比,Qt::SmoothTransformation表示使用平滑縮放算法ui->photoShow->setPixmap(pixmap.scaled(ui->photoShow->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));ui->photoPath->setText(file.absolutePath());//顯示打開的文件的絕對路徑,這不包括文件名。photoPath.append(file.absoluteFilePath());// 把圖片的路徑裝到容器中QListWidgetItem *item = new QListWidgetItem(QIcon(file.absoluteFilePath()),file.fileName());//建立文件縮小圖標item->setToolTip(file.fileName());// tip提示item->setTextAlignment(Qt::AlignCenter);//設置item項中的文字位置ui->photoList->addItem(item);//把圖片相對路徑顯示到窗口中}else{// 錯誤消息框QMessageBox::critical(this,tr("Error"),tr("The image file count not be read"));}
}
//用于在窗口大小改變時處理事件
int i=0;
void PicturePlay::resizeEvent(QResizeEvent *event)
{Q_UNUSED(event);//忽略編譯器發(fā)出的警告,表明變量event未使用qDebug()<<"窗口大小改變:"<<i++;if(!pixmap.isNull()){ui->photoShow->setPixmap(pixmap.scaled(ui->photoShow->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));}
}
// 清除
void PicturePlay::on_cleanBtn_clicked()
{mtime->stop();num = 0;if(autoFlag)//選中自動播放的情況{autoFlag = false;}pixmap.fill(Qt::transparent);//函數用于將QPixmap對象pixmap清空,參數Qt::transparent表示填充透明色,無返回值ui->autoPhoto->setCheckState(Qt::Unchecked);//把自動播放按鈕置于沒有選擇的狀態(tài)ui->loopPlayback->setCheckState(Qt::Unchecked);//把循環(huán)重放鈕置于沒有選擇的狀態(tài)photoPath.clear();ui->photoPath->clear();ui->photoShow->clear();ui->photoList->clear();
}

pictureplay.ui

在這里插入圖片描述

效果

  • 啟動
    在這里插入圖片描述
  • 運行
    在這里插入圖片描述
http://www.risenshineclean.com/news/27777.html

相關文章:

  • 網站編程外貿業(yè)務推廣
  • 廣東裝飾公司網站建設網絡營銷師證書含金量
  • 中山企業(yè)門戶網站建設成都網站關鍵詞推廣
  • 長沙需要做網站的企業(yè)吳忠seo
  • 動態(tài)網站開發(fā)第一步藥品銷售推廣方案
  • 中國幼兒在線幼兒園網站建設天津網站建設
  • sae 網站模板線上營銷平臺有哪些
  • 政府網站建設什么網站可以免費推廣
  • wordpress 首頁模板河南靠譜seo地址
  • 北京中關村在線官網站群seo
  • 長沙簡單的網站建設公司威海百度seo
  • 翡翠原石網站首頁怎么做怎樣做app推廣
  • 網站手機端 怎么做阿里指數官方網站
  • 在局網站 作風建設百度電話怎么轉人工
  • 網站備案當面核驗中國搜索引擎市場份額
  • 汕頭網站推廣教程2345瀏覽器網址導航
  • 怎么做淘寶客網站賺錢整站優(yōu)化加盟
  • 做英文網站哪家好關鍵詞首頁排名優(yōu)化價格
  • 大寺網站建設公司不限次數觀看視頻的app
  • 網站備案填寫昆山網站制作公司
  • 可以做早安圖片的網站一鍵優(yōu)化大師下載
  • domain:網站建設網站建設的系統(tǒng)流程圖
  • 有了網站 怎么做排名優(yōu)化新聞頭條最新消息今日頭條
  • 企業(yè)網盤怎么申請seo搜索優(yōu)化 指數
  • 兼職做設計什么網站好360競價推廣
  • 建筑工地招聘信息網昆明網站seo公司
  • 網站開發(fā)網絡課程網絡營銷的平臺有哪些
  • 電商網站怎么做支付廣州專門做seo的公司
  • 上海做網站要多少錢邵陽seo優(yōu)化
  • 哪些網站做魔獸地圖樂云seo