Qt简化了UI界面的开发,相比MFC而言确实入门和进阶速度都快些;该文章主要讲解使用QListWidget加载图片进行排列并设置主窗口背景图片的功能;

界面效果如下图所示:上面两排为预加载的缩略图,单击单个缩略图则将对应的图片设置为主窗口的背景图片

使用Qt实现简单的图片预览效果

主要代码如下,主窗口的构造函数功能(生成窗口部件与加载内容):

?

//构造函数

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-&gt;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-&gt;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);

}

×××地址:http://files.cnblogs.com/appsucc/ListWidgetImage.rar