簡體   English   中英

如何在 QTreeWidget Header 中添加按鈕或其他小部件?

[英]How to Add a Button or other widget in QTreeWidget Header?

誰能給我一個關於如何在 QTreeWidget 的 header 中放置按鈕的提示 一個最小的例子非常受歡迎?

對於評論中的人(基本上任何其他可能會受到幫助的人),這是下面代碼的翻譯版本 python:

from PySide2 import QtWidgets, QtCore

import sys



class Header(QtWidgets.QHeaderView):
    def __init__(self, orientation, parent=None):
        super(Header, self).__init__(orientation, parent)

        self.button = QtWidgets.QPushButton('Button text', self)



class TreeWidget(QtWidgets.QTreeWidget):
    def __init__(self, parent=None):
        super(TreeWidget, self).__init__(parent)

        item0 = QtWidgets.QTreeWidgetItem(["Item 0"])
        item1 = QtWidgets.QTreeWidgetItem(["Item 1"])

        self.addTopLevelItem(item0)
        self.addTopLevelItem(item1)
        self.createHeader()

    def createHeader(self):
        header = Header(QtCore.Qt.Horizontal, self)
        self.setHeader(header)



if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)

    w = TreeWidget()
    w.show()
    sys.exit(app.exec_())


#QTreeWidget header is an "stand alone" widget - QHeaderView, so you can set the custom implementation of it.
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QHeaderView>
#include <QPushButton>


class Header
    : public QHeaderView
{
public:
    Header(QWidget* parent)
        : QHeaderView(Qt::Horizontal, parent)
        , m_button(new QPushButton("Button", this))
    {
    }

private:
    QPushButton* m_button;
};

class TreeWidget
    : public QTreeWidget
{
    Q_OBJECT
public:
    TreeWidget()
        : QTreeWidget(0)
    {
        QTreeWidgetItem* item0 = new QTreeWidgetItem(QStringList("Item 0"));
        QTreeWidgetItem* item1 = new QTreeWidgetItem(QStringList("Item 1"));
        addTopLevelItem(item0);
        addTopLevelItem(item1);
        createHeader();
    }

private:
    void createHeader()
    {
        m_header = new Header(this);
        setHeader(m_header);
    }

private:
    Header* m_header;

};

int main(int c, char** v)
{
    QApplication a(c, v);

    TreeWidget* tw = new TreeWidget();
    tw->show();

    return a.exec();
}


//QTreeWidget header is an "stand alone" widget - QHeaderView, so you can set the custom implementation of it.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM