Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python的新选项卡中显示图像_Python_Image_User Interface_Tabs_Pyqt - Fatal编程技术网

如何在Python的新选项卡中显示图像

如何在Python的新选项卡中显示图像,python,image,user-interface,tabs,pyqt,Python,Image,User Interface,Tabs,Pyqt,假设我在一个目录中有10个图像,并且需要在用户按下按钮后将它们显示在新创建的选项卡中。图像必须按照5x5网格显示,并带有适当的图像标签 我使用Qt Designer设计了一个GUI,其中包含三个不同的选项卡(tab1、tab2和tab3),但这似乎对我不起作用-图像不会显示在tab3中。如何使用命令行编码而不是使用Qt设计器来显示所有图像 以下是显示图像的功能: # Display image at 'Tab 3' once user press button 'Display' def dis

假设我在一个目录中有10个图像,并且需要在用户按下按钮后将它们显示在新创建的选项卡中。图像必须按照5x5网格显示,并带有适当的图像标签

我使用Qt Designer设计了一个GUI,其中包含三个不同的选项卡(tab1、tab2和tab3),但这似乎对我不起作用-图像不会显示在tab3中。如何使用命令行编码而不是使用Qt设计器来显示所有图像

以下是显示图像的功能:

# Display image at 'Tab 3' once user press button 'Display'
def display_result(self):

    # Get wafer qty
    qty = int(self.qty_selected)
    print('qty -> ' + str(qty))

    # Get lot id
    name = str(self.lotId)
    print ('lotId -> ' + str(name))

    for index in range(int(qty)):   
        pixmap = QtGui.QPixmap()
        path = r'c:\Users\mohd_faizal4\Desktop\Python\Testing\%s\%s_%d.jpeg' % (name, name, index + 1)
        print('load (%s) %r' % (pixmap.load(path), path))
        item = QtGui.QListWidgetItem(os.path.basename(path))
        item.setIcon(QtGui.QIcon(path))
        self.viewer.addItem(item)


    contents = QtGui.QWidget(self.tabWidget)
    layout = QtGui.QVBoxLayout(contents)
    self.tabWidget.addTab(contents, 'Tab 4')
我想显示“选项卡4”中的所有图像,而不是打开另一个窗口


通过在选项卡中创建标签,您可以轻松地在选项卡内显示图像,下面是一个示例:(我示例中的选项卡是tab_3)

def setupUi(self,主窗口):
self.label=qtwidts.QLabel(self.tab_3)
self.label.setGeometry(QtCore.QRect(340,30241171))
self.label.setText(“”)
self.label_181.setPixmap(QtGui.QPixmap(“images/A_01.png”))
self.label.setScaledContents(True)
self.label.setObjectName(“label”)


因此,在这里您将在选项卡中获得图像。我希望这将对您有所帮助。

您需要为每个选项卡创建一个新的列表小部件。下面是一个演示:

import sys, os
from PyQt4 import QtCore, QtGui

class Window(QtGui.QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.tabs = QtGui.QTabWidget(self)
        self.edit = QtGui.QLineEdit(self)
        self.button = QtGui.QPushButton('New Tab', self)
        self.button.clicked.connect(self.createNewTab)
        layout = QtGui.QGridLayout(self)
        layout.addWidget(self.tabs, 0, 0, 1, 2)
        layout.addWidget(self.edit, 1, 0)
        layout.addWidget(self.button, 1, 1)

    def createNewTab(self):
        viewer = QtGui.QListWidget(self)
        viewer.setViewMode(QtGui.QListView.IconMode)
        viewer.setIconSize(QtCore.QSize(256, 256))
        viewer.setResizeMode(QtGui.QListView.Adjust)
        viewer.setSpacing(10)
        name = self.edit.text()
        for index in range(5):
            pixmap = QtGui.QPixmap()
            path = r'c:\Users\mohd_faizal4\Desktop\Python\Testing\%s\%s_%d.jpeg' % (name, name, index + 1)
            print('load (%s) %r' % (pixmap.load(path), path))
            item = QtGui.QListWidgetItem(os.path.basename(path))
            item.setIcon(QtGui.QIcon(path))
            viewer.addItem(item)
        index = self.tabs.count()
        self.tabs.addTab(viewer, 'Tab%d' % (index + 1))
        self.tabs.setCurrentIndex(index)

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.setGeometry(800, 150, 650, 500)
    window.show()
    sys.exit(app.exec_())

如果您正在使用qt并询问有关qt的信息,我建议您使用一些qt标记…已经更新标记以包括PyQT这太开放了。显示您尝试过的代码,并指出在此代码中您没有得到预期结果的地方。我已更新问题并详细说明问题。对不起,我英语不好。我很想帮忙,但你的问题不清楚。您提到无法在选项卡3中显示图像,但随后您谈到了选项卡4。请记住,我们对您的申请一无所知。简单一点:只把问题的关键放在这里。例如,选项卡1和2似乎与问题无关。复制您的应用程序代码,然后删除所有不重要但仍会重现问题的内容。然后发布代码,包括ui文件,以便我们可以将其复制到IDE中并运行它。如果我需要在grid view 5x5的“内部标签”选项卡中显示多个图像,如何?我对Python编程非常陌生。在选项卡中创建多个标签,然后设置每个标签的几何图形以避免干扰,并在每个标签中加载一张图片。