python-2.7 – 向TabWidget pyqt4添加加号按钮
发布时间:2020-05-23 20:25:49 所属栏目:Python 来源:互联网
导读:以下代码提供了一个可以动态添加选项卡的选项卡界面 import sys, randomfrom PyQt4 import QtCore, QtGuiclass TabContainer(QtGui.QWidget): def __init__(self): super(TabContainer, self).__init__() self.next_item_is_tab
|
以下代码提供了一个可以动态添加选项卡的选项卡界面 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_())
但我想在标签栏旁边添加一个新的标签按钮,类似于任何浏览器…… 上述代码的来源是:Dynamically change view of tabs in a QTabWidget (PyQt) 解决方法您可以在选项卡栏上设置 corner-widget: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) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
