当前位置:软件学习 > 其它软件 >>

使用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);
}
源码下载地址:/2012/0229/20120229091416280.rar
 

 摘自 文艺IT男


补充:软件开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,