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); } |