从 PyQt 的 TabWidget 中的顶部加载图像

load image from the Top in TabWidget from PyQt

下面的代码,从特定路径加载图像并放置在 Window.Here 的底部我需要从 top.So 加载图像,因为我需要更改选项卡小部件(Tab01、Tab02、Tab03)的放置。 我无法从顶部加载图像,也无法更改选项卡的位置 Widget.How 以及如何从顶部加载图像。

import re,sys,os
from PyQt4 import QtGui,QtCore
class projs(QtGui.QWidget): 
    def __init__(self, parent=None):
        super(projs,self).__init__(parent)
        self.setWindowTitle(" V1.0 ")  
        tab_widget = QtGui.QTabWidget() 
        proj    = QtGui.QWidget() 
        asset   = QtGui.QWidget() 
        shots   = QtGui.QWidget() 
        tab_widget.addTab(proj, "Tab01") 
        tab_widget.addTab(asset, "Tab02")
        tab_widget.addTab(shots, "Tab03")
        self.projPathLabel = QtGui.QLabel("Project Path ",proj)
        self.projPathLabel.setGeometry(10,20,100,25)
        self.assetPathLabel = QtGui.QLabel("Project ",asset)
        self.assetPathLabel.setGeometry(20,20,100,25)
        self.shotPathLabel = QtGui.QLabel("Project ",shots)
        self.shotPathLabel.setGeometry(20,20,100,25)
        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(tab_widget)         
        self.setLayout(vbox)      
        p1_vbox = QtGui.QVBoxLayout(proj)
        proj.setLayout(p1_vbox)
        p2_vbox = QtGui.QVBoxLayout(asset)
        asset.setLayout(p2_vbox)
        p3_vbox = QtGui.QVBoxLayout(shots)
        shots.setLayout(p3_vbox)
        vuvupic = QtGui.QPixmap("C:\Users\name\Documents\config\Logo2.jpg")
        label = QtGui.QLabel(self)
        label.setPixmap(vuvupic)
        vbox.addWidget(label)
app = QtGui.QApplication([]) 
win = projs() 
win.resize(410,390)
win.show()
sys.exit(app.exec_())

"from the top," 是指将图像放在 TabWidget 上方吗? QLayouts 的排序顺序与 vbox.addWidget() 调用的顺序相同,这意味着您可以重新排序函数调用以将图片放在顶部。

import re,sys,os
from PyQt4 import QtGui,QtCore
class projs(QtGui.QWidget): 
    def __init__(self, parent=None):
        super(projs,self).__init__(parent)
        self.setWindowTitle(" V1.0 ")  
        tab_widget = QtGui.QTabWidget() 
        proj    = QtGui.QWidget() 
        asset   = QtGui.QWidget() 
        shots   = QtGui.QWidget() 
        tab_widget.addTab(proj, "Tab01") 
        tab_widget.addTab(asset, "Tab02")
        tab_widget.addTab(shots, "Tab03")
        self.projPathLabel = QtGui.QLabel("Project Path ",proj)
        self.projPathLabel.setGeometry(10,20,100,25)
        self.assetPathLabel = QtGui.QLabel("Project ",asset)
        self.assetPathLabel.setGeometry(20,20,100,25)
        self.shotPathLabel = QtGui.QLabel("Project ",shots)
        self.shotPathLabel.setGeometry(20,20,100,25)
        vbox = QtGui.QVBoxLayout()
        vuvupic = QtGui.QPixmap("C:\Users\name\Documents\config\Logo2.jpg")
        label = QtGui.QLabel(self)
        label.setPixmap(vuvupic)
        vbox.addWidget(label)
        vbox.addWidget(tab_widget)         
        self.setLayout(vbox)      
        p1_vbox = QtGui.QVBoxLayout(proj)
        proj.setLayout(p1_vbox)
        p2_vbox = QtGui.QVBoxLayout(asset)
        asset.setLayout(p2_vbox)
        p3_vbox = QtGui.QVBoxLayout(shots)
        shots.setLayout(p3_vbox)
app = QtGui.QApplication([]) 
win = projs() 
win.resize(410,390)
win.show()
sys.exit(app.exec_())

此外,对于中等规模的项目,您可能需要考虑使用 QtDesigner 构建布局。谷歌搜索 "pyqt designer" 将为您提供大量的入门博客和教程。