python 2.7 -为TabWidget pyqt4添加加号按钮



下面的代码给出了一个选项卡接口,可以动态地添加选项卡

 import sys, random
from PyQt4 import QtCore, QtGui
class TabContainer(QtGui.QWidget):
  def __init__(self):
    super(TabContainer, self).__init__()
    self.next_item_is_table = False
    self.initUI()
  def initUI(self):
    self.setGeometry( 150, 150, 650, 350)
    self.tabwidget = QtGui.QTabWidget(self)
    vbox = QtGui.QVBoxLayout()
    vbox.addWidget(self.tabwidget)
    self.setLayout(vbox)
    self.pages = []
    self.add_page()
    self.show()
  def create_page(self, *contents):
    page = QtGui.QWidget()
    vbox = QtGui.QVBoxLayout()
    for c in contents:
        vbox.addWidget(c)
    page.setLayout(vbox)
    return page
  def create_table(self):
    rows, columns = random.randint(2,5), random.randint(1,5)
    table = QtGui.QTableWidget( rows, columns )
    for r in xrange(rows):
        for c in xrange(columns):
            table.setItem( r, c, QtGui.QTableWidgetItem( str( random.randint(0,10) ) ) )
    return table
  def create_list(self):
    list = QtGui.QListWidget()
    columns = random.randint(2,5)
    for c in xrange(columns):
        QtGui.QListWidgetItem( str( random.randint(0,10) ), list )
    return list
  def create_new_page_button(self):
    btn = QtGui.QPushButton('Create a new page!')
    btn.clicked.connect(self.add_page)
    return btn
  def add_page(self):
    if self.next_item_is_table:
        self.pages.append( self.create_page( self.create_table(), self.create_new_page_button() ) )
        self.next_item_is_table = False
    else:
        self.pages.append( self.create_page( self.create_list(), self.create_new_page_button() ) )
        self.next_item_is_table = True
    self.tabwidget.addTab( self.pages[-1] , 'Page %s' % len(self.pages) )
    self.tabwidget.setCurrentIndex( len(self.pages)-1 )
app = QtGui.QApplication(sys.argv)
ex = TabContainer()
sys.exit(app.exec_())

但是我想在标签栏旁边添加一个新的标签按钮,类似于任何浏览器…我搜索了一下,但我找不到任何方法来添加加号按钮……是否有任何属性在TabWidget或我需要添加一个新的按钮在那里…?

以上代码的源代码是:动态更改QTabWidget (PyQt)中的选项卡视图

你可以在标签栏上设置一个角落小部件:

    self.tabButton = QtGui.QToolButton(self)
    self.tabButton.setText('+')
    font = self.tabButton.font()
    font.setBold(True)
    self.tabButton.setFont(font)
    self.tabwidget.setCornerWidget(self.tabButton)
    self.tabButton.clicked.connect(self.add_page)

相关内容

  • 没有找到相关文章

最新更新