【问题标题】:pyqt QTabWidget setCornerWidget TopRightCornerpyqt QTabWidget setCornerWidget TopRightCorner
【发布时间】:2020-06-10 22:44:53
【问题描述】:

我有一个 QTabWidget 并在他的右上角添加了一个设置标签。当我设置标签的宽度和高度时,它的边框穿过我添加的“a”选项卡。我想设置lael的宽度和高度。不要越过我添加的'a'标签,我应该如何设置

from PyQt4.QtCore import Qt
from PyQt4.QtGui import QTabWidget, QLabel
import sys
from PyQt4 import QtGui


class Setting(QLabel):
    def __init__(self):
        super(Setting, self).__init__()
        self.setText('setting')
        self.setStyleSheet("""*{border-width: 1px;
                                 border-style: solid;
                                 border-color: red;}""")
        self.setFixedSize(30, 40)


class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def create_tab(self):
        self.tab = QTabWidget()
        self.tab.addTab(QLabel('a'), 'a')
        self.tab.setCornerWidget(Setting(), Qt.TopRightCorner)

    def initUI(self):
        self.create_tab()

        h = QtGui.QHBoxLayout()
        self.setLayout(h)
        h.addWidget(self.tab)
        self.setGeometry(100, 100, 500, 500)
        self.show()


def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

【问题讨论】:

    标签: python pyqt pyqt4


    【解决方案1】:

    如果您从标签中删除setFixedSize(),您可以通过定位::right-corner 来通过QTabWidget 上的样式表控制大小和位置。

    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
            self.initUI()
    
        def create_tab(self):
            self.tab = QTabWidget()
            self.tab.setStyleSheet('''
            QTabWidget::right-corner {
                width: 60px;
                height: 25px;
                subcontrol-position: left bottom;
            }''')
            self.tab.addTab(QLabel('a'), 'a')
            self.tab.setCornerWidget(Setting(), Qt.TopRightCorner)
    

    除了subcontrol-position,您还可以使用带有像素值的topbottomleftright 来移动控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多