次の Python スニペットでは、アプリケーションを実行するとクラッシュします。Mac OS X、Windows、および Ubuntu でテストしました。
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class TabbedWindow(QTabWidget):
def __init__(self):
super(TabbedWindow, self).__init__()
self.setWindowTitle(u"Tabs Test")
self.resize(800, 600)
self.addTab(QTextEdit(), "Tab 1")
self.addTab(QCalendarWidget(), "Tab 2")
self.setTabsClosable(True)
tabBar = self.tabBar()
menuButton = QPushButton('')
menuButton.resize(0,0)
tabBar.setTabButton(1, QTabBar.RightSide, menuButton)
def main():
app = QApplication(sys.argv)
window = QMainWindow()
tabs = TabbedWindow()
window.setCentralWidget(tabs)
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
この行を削除するtabBar.setTabButton(1, QTabBar.RightSide, menuButton)
と機能します!
また、この行をmain
機能するように移動した場合: それも機能します! これをメイン関数に追加したときのことを意味します。
tabBar = tabs.tabBar()
menuButton = QPushButton('')
menuButton.resize(0,0)
tabBar.setTabButton(1, QTabBar.RightSide, menuButton)
私がやりたいのは、一部のタブで閉じるボタンを非表示にすることです。
これを実行するための回避策はありますか?