gpt4 book ai didi

python - 如何在 QT (PyQT) 中实现类似于 Google Image 搜索的布局?

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:40 24 4
gpt4 key购买 nike

我是 QT 新手。我在我的项目中使用 PyQT 进行 GUI 开发。我想在我的应用程序中实现这种布局。此应用程序从图像数据库中搜索图像。 Google 图片搜索布局非常适合我的目的。

alt text

我正在阅读“使用 Python 和 Qt 进行快速 GUI 编程”这本书,并且我熟悉布局。我想我需要对每个网格框中的每个结果图像使用网格布局。 & 在每个网格框内对 (image,Qlabel,Qlabel) 使用垂直布局。

这些是我面临的一些问题。

  1. 重要的是,我无法显示图像。我需要什么控件/小部件?我找不到任何类似于 .NET 的 PictureBox 的东西

  2. 如何像图像中那样通过固定间隙分隔这些图像结果?我正在使用水平和垂直分隔符,但它不起作用?

  3. 如何将 QLabel 设置为可点击(如超链接)。我不想打开一个 URL。只有文本应该是可点击的。所以,当用户点击链接时。我可以显示更多信息(比如当他点击下一页时的下一组结果,或者当用户点击“查看”时显示全尺寸图像的新窗口)我们是否有一些新的控制方式?

  4. 这是另一个重要的问题。我将显示结果的页码(如图所示)并假设它们是可点击的。如何加载新的页面结果?我的意思是 QT 中的 page 是什么?

  5. 如您所料。这绝对不会是 GUI 的第一页。第一页将完全像 http://google.com (一个大 Logo 和文本框,下方有按钮)。当用户点击搜索按钮时。将显示此页面。同样的问题再次出现。怎么改页面?

请提供我为此需要的控件列表。如果我不知道什么,请告诉我。

最佳答案

1/2。要显示图像和标签,请使用 QListWidget View 模式设置为 QListView::IconMode。但是,如果您需要自定义超出 QListWidget/QListWidgetItem api 可以提供的显示,您将需要创建自己的 QAbstractListModel并使用标准的 QListView 。确保并阅读 Qt's primer on model/view .

至于图像间距,请查看 spacing property在 ListView 上。

这是 KDE 的 Dolphin 文件管理器的一个例子: Dolphin's icon mode

3. 使用常规 QLabel,但将内容设置为 href。

例子:

编辑:糟糕,我从你的标签中看到你正在使用 PyQt,以下是 C++,但应该与你在 python 中所做的类似。

  QLabel *linkLabel = new QLabel;
linkLabel->setTextFormat( Qt::RichText )
linkLabel->setText( "<a href=\"someurl\"> Click me! </a>" );
connect( linkLabel, SIGNAL( linkActivated ( const QString & link ) ), .... )

4.好吧,既然您使用的是模型/ View ,为什么还要费心使用页码呢?用户将只能 ScrollView 并显示更多图片。这是迄今为止最简单的解决方案,因为一旦您完成了 M/V 设置,您就无需执行任何操作!

但是,如果您真的想显示页码,则需要在您的模型中做更多的工作。例如,在模型中跟踪“当前页面”并且只允许访问“当前页面”上的图像。然后在连接到 linkActivated() 信号的插槽中告诉模型更改页面。我不会详细介绍,因为这严重违反了模型/ View 背后的整个想法。这样做的“正确方法”是继承 QListView 并添加分页支持,但正如我所说,为什么不使用滚动条?这样做不会对性能造成任何影响。

5. 使用 QStackedWidget , addWidget() 你所有的“页面”到它,然后根据需要调用 setCurrentIndex/Widget() 来切换页面。

想法:看起来你非常致力于克隆谷歌图像搜索的外观、感觉和行为,这很好,但谷歌图像搜索是一个网络应用程序,它使用与普通桌面应用程序(链接、页面、 ETC)。您可能正在开发桌面应用程序,并且通过尝试模拟 Web 应用程序的行为您会发现这很困难,因为 API 并非旨在支持这些类型的交互。无论如何,这是可行的,但您的工作会很顺利。

如果您极力坚持基于 Web 的交互方式,为什么不用 javascript 和 HTML 编写您的应用程序并将其放入 QWebView 中? ?

关于python - 如何在 QT (PyQT) 中实现类似于 Google Image 搜索的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com