使用Qt设计图片浏览器的问题

使用Qt设计图片浏览器的问题,第1张

首先,你得确保你有Qt framework的基础知识。

其次,如果你的主界面显示有几种决策要取决于你的需求:

你的显示是含老列表,还是表格,这里决定着你的布局是如何布局的。

另一个则是使用外部的布局还是将整个显示作为一个整体。

先获取某文件中的文件信息,可以通过QDir,获取对应的entryList,设置好对应的图片ext的过滤器即可。

这么说,如果你是使用外部布局,你每一个图片由QPixmap/QImage导入,再用一个QLabel来显示,列表还是表格则可以用QBoxLayout或是GridLayout。 在Win32中,由于每一个Widget都有窗体句柄, 你可以通过对应的win32API 获取对应的子窗体。

而使用整体布局,列表或是表格则可以用QListView/QTableView,重写对应的model即可,难度比较大,但是扩展性比较好,由于每个QListView/QTableView都is-a QWidget,因孝唤此都具有唯一的窗体句柄(当然不考虑view port widget),同时内部是存在类似layout的布局管理,当内部某个model改变的时候,该窗体一般会局部刷新等等。

简而言之,如果你需要很快入手,建议使用第一种。

由QDir =>QPixmap/QImage =>QLabel =>QBoxLayout/QGridLayout

有问题HI~

如果需要帮忙,价钱好谈= =~ 缺钱巧老凯呐~

呃,最后句话当我没说…

1、一个简单的图片显示程序(以下仅是部分程序段,相信大家会看明白)

QPixmap pixmap( "image.jpg" ) //image.jpg在程序的当前目录下。

PixmapLabel1->setPixmap(pixmap) //PixmapLabel1标签即可显示图片。

2、将QImage转换为QPixmap

QString fileName = QFileDialog::getOpenFileName(this,

tr("Open File"), QDir::currentPath())

if (!fileName.isEmpty())

{

QImage image(fileName) //定义QImage类。

if (image.isNull()) {

QMessageBox::information(this, tr("Image Viewer"),

tr("Cannot load %1.").arg(fileName))

return

}

ui.label->setPixmap(QPixmap::fromImage(image)) 将QImage转换为QPixmap。

}

3、QImage的加载图片的方法(个人现只懂两种)

(1)、QImage image(fileName) //直接在QImage类的构造函数搞定,fileName是指应用程序的当前目录,相信大家能理解这饥陵里所说的当前目录。

(2)烂局戚、腊颤QImage image

image.load(fileName) //使用了load方法。

参考答案 有时候我们放不开不是因为失去,而是心疼自己的付出。 遗忘敏弯的好处是:也许肆拿腊会后悔,也许会难过,但是心却不会再疼。 曾经看不惯,受不了的,如今不过淡然一笑裂滑。成熟,不是看破,而是看淡。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12290178.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存