使用Qt实现简单的图片预览效果
2012-02-28 15:16
781 查看
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);
}
源码下载地址:http://files.cnblogs.com/appsucc/ListWidgetImage.rar
主要代码如下,主窗口的构造函数功能(生成窗口部件与加载内容):
?
//构造函数
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);
}
源码下载地址:http://files.cnblogs.com/appsucc/ListWidgetImage.rar
相关文章推荐
- 使用Qt实现简单的图片预览效果
- 使用Qt实现简单的图片预览效果
- 使用Qt实现简单的图片预览效果
- 使用Qt实现简单的图片预览效果
- 使用Qt实现简单的图片预览效果
- 使用Qt实现简单的图片预览效果 good
- 使用Qt实现简单的图片预览效果
- XRecyclerView的简单使用与图片拉动字体缩放效果的实现
- ViewFlipper的简单使用实现图片轮播效果
- vue2.0 使用element-ui里的upload组件实现图片预览效果
- 使用CSS实现图片分割效果的简单方法介绍
- 非常简单的使用jquery fancybox插件实现的查看图片效果
- Android使用ViewPager实现图片滑动预览效果
- 非常简单的使用jquery fancybox插件实现的查看图片效果
- JavaScript使用FileReader实现图片上传预览效果
- 使用JS实现图片展示瀑布流效果(简单实例)
- vue2.0 使用element-ui里的upload组件实现图片预览效果方法
- 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站
- Asp.net图片上传实现预览效果的简单代码
- jQuery实现的上传图片本地预览效果简单示例