Qt 顯示圖像圖像縮略圖

Qt簡化了UI界面的開發,相比MFC而言確實入門和進階速度都快些;該文章主要講解使用QListWidget加載圖片進行排列並設置主窗口背景圖片的功能;

界面效果如下圖所示:上面兩排爲預加載的縮略圖,單擊單個縮略圖則將對應的圖片設置爲主窗口的背景圖片

 

 

 

 

 

 

 

 

 

 

 

 

 


主要代碼如下,主窗口的構造函數功能(生成窗口部件與加載內容):

//構造函數
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{
    //創建QListWidget部件
    m_pListWidget = new QListWidget(this);
    //設置QListWidget中的單元項的圖片大小
    m_pListWidget->setIconSize(QSize(W_ICONSIZE, H_ICONSIZE));
    m_pListWidget->setResizeMode(QListView::Adjust);
    //設置QListWidget的顯示模式
    m_pListWidget->setViewMode(QListView::IconMode);
    //設置QListWidget中的單元項不可被拖動
    m_pListWidget->setMovement(QListView::Static);
    //設置QListWidget中的單元項的間距
    m_pListWidget->setSpacing(10);
 
    //依次創建11個單元項
    for(int nIndex = 0;nIndex<11;++nIndex)
    {
        //獲得圖片路徑
        QString strPath=QString(":/list/image/%1.jpg").arg(nIndex+1);
        //生成圖像objPixmap
        QPixmap objPixmap(strPath);
        //生成QListWidgetItem對象(注意:其Icon圖像進行了伸縮[96*96])---scaled函數
        QListWidgetItem *pItem = new QListWidgetItem(QIcon(objPixmap.scaled(QSize(W_ICONSIZE,H_ICONSIZE))),"animal tiger pig");
        //設置單元項的寬度和高度
        pItem->setSizeHint(QSize(W_ICONSIZE,H_ITEMSIZE));
        m_pListWidget->insertItem(nIndex, pItem);
 
    }
 
    setCentralWidget(m_pListWidget);
 
    //設置信號槽
    connect(m_pListWidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(Slot_ItemClicked(QListWidgetItem*)));
 
    m_strPath = "";
 
    setWindowTitle("www.hnmade.com");
}

設置窗口背景圖片的代碼如下:

//設置主窗口背景
void MainWindow::SetBgImage(const QString &strPath)
{
    QPixmap objPixmap(strPath);
    QPalette palette = this->palette();
    if(strPath.isEmpty())
    {
        palette.setBrush(QPalette::Base, QBrush(QColor(0,0,255)));
    }
    else
    {
        palette.setBrush(QPalette::Base, QBrush(objPixmap.scaled(width(),height())));
    }
    setPalette(palette);
}
發佈了33 篇原創文章 · 獲贊 17 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章