首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tab (QTabWidget)中添加图标?

在Tab (QTabWidget)中添加图标?
EN

Stack Overflow用户
提问于 2019-08-01 09:06:20
回答 1查看 5.1K关注 0票数 4

我正在使用一个带有三个TabsTabs

其中一个标签是关于信息/帮助的。因此,我想用一个问题标记(.png)的图片代替文本“帮助”。

这个是可能的吗?我正在使用Python/PyQt,我只能找到C++的解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-01 09:37:14

::addTab(QWidget *page,const QIcon &图标,const QString &label) 将带有给定页、图标和标签的选项卡添加到选项卡小部件中,并在选项卡栏中返回该选项卡的索引。页的所有权将传递给QTabWidget。

::setTabIcon(int索引,const QIcon &图标) 在位置索引处设置选项卡的图标。

代码语言:javascript
复制
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Window(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        
        self.qtabwidget = QtWidgets.QTabWidget(self) 
        
        widget  = QtWidgets.QPlainTextEdit("QPlainTextEdit 1")
        label   = 'Tab &1'
        widget2 = QtWidgets.QPlainTextEdit("QPlainTextEdit 2")
        
        tab_index1 = self.qtabwidget.addTab(widget, label)
        
        tab_index2 = self.qtabwidget.addTab(widget2, 'Tab &2')
        self.qtabwidget.setTabIcon(tab_index2, QtGui.QIcon('im.png'))                # <---  
        self.qtabwidget.setIconSize(QtCore.QSize(32, 32)) 
        
        self.qtabwidget.addTab(
                QtWidgets.QLabel("QLabel Tab &3", alignment=QtCore.Qt.AlignCenter), 
                QtGui.QIcon('Ok.png'),                                               # < ---
                'Tab &3')
        
        self.qtabwidget.addTab(None, "No Widget")
        
        self.qtabwidget.setTabsClosable(True)  
        self.qtabwidget.tabCloseRequested.connect(self.qtabwidget_tabcloserequested)
        self.qtabwidget.setTabShape(QtWidgets.QTabWidget.Triangular)
        self.qtabwidget.setTabPosition(QtWidgets.QTabWidget.East)  
        self.qtabwidget.setTabEnabled(0, False)         # disable tab
        self.qtabwidget.setTabEnabled(1, True)          # enable tab
        self.qtabwidget.currentChanged.connect(self.qtabwidget_currentchanged)
       
        self.setCentralWidget(self.qtabwidget)

    @QtCore.pyqtSlot(int)
    def qtabwidget_tabcloserequested(self, index):
        # gets the widget
        widget = self.qtabwidget.widget(index)
        # if the widget exists
        if widget:
            widget.deleteLater()
        # removes the tab of the QTabWidget
        self.qtabwidget.removeTab(index)
        
    @QtCore.pyqtSlot(int)
    def qtabwidget_currentchanged(self, index):
        print(f"\n New index of current page: {index}")


if __name__ == '__main__':
    application = QtWidgets.QApplication(sys.argv)
    window = Window()
    window.setWindowTitle('QTabWidget')
    window.resize(400, 400)
    window.show()
    sys.exit(application.exec_())        

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57305452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档