Bor*_*kov 2 user-interface qt pyqt
我有一个带有QTabWidget的简单示例PyQt应用程序.我无法将QTabWidget的tabCloseRequested信号连接到插槽,以便正确关闭选项卡:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Application(object):
def __init__(self):
app = QApplication(sys.argv)
self.window = QMainWindow()
self.notebook = QTabWidget()
self.notebook.tabBar().setTabsClosable(True)
self.notebook.tabBar().setMovable(True)
self.notebook.tabCloseRequested.connect(self.close_handler)
self.window.setCentralWidget(self.notebook)
page1 = QWidget()
self.notebook.addTab(page1, "page1")
page2 = QWidget()
self.notebook.addTab(page2, "page2")
self.window.show()
sys.exit(app.exec_())
def close_handler(self, index):
print "close_handler called, index = %s" % index
self.notebook.removeTab(index)
if __name__ == "__main__":
app = Application()
Run Code Online (Sandbox Code Playgroud)
当我点击关闭按钮时,没有任何反应.甚至不应该调用打印!我究竟做错了什么?
您需要调用setTabsClosable(True)tab-widget,而不是它的tab-bar:
self.notebook.setTabsClosable(True)
Run Code Online (Sandbox Code Playgroud)
(PS:close_handler方法也缺少一个self参数).