当前位置: 首页>>代码示例>>Python>>正文


Python QTable.setSorting方法代码示例

本文整理汇总了Python中qttable.QTable.setSorting方法的典型用法代码示例。如果您正苦于以下问题:Python QTable.setSorting方法的具体用法?Python QTable.setSorting怎么用?Python QTable.setSorting使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qttable.QTable的用法示例。


在下文中一共展示了QTable.setSorting方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: BrowserBrick

# 需要导入模块: from qttable import QTable [as 别名]
# 或者: from qttable.QTable import setSorting [as 别名]
class BrowserBrick(BaseComponents.BlissWidget):
    def __init__(self, *args):
        BaseComponents.BlissWidget.__init__(self, *args)

        #map displayed string in the history list -> actual file path
        self.history_map = dict()

        self.layout = QVBoxLayout(self)

        self.defineSlot('load_file', ())
        self.defineSlot('login_changed', ())
        self.addProperty('mnemonic', 'string', '')
        self.addProperty('history', 'string', '', hidden=True)
        self.addProperty('sessions ttl (in days)', 'integer', '30')

        #make sure the history property is a pickled dict
        try:
            hist = pickle.loads(self.getProperty('history').getValue())
        except: # EOFError if the string is empty but let's not count on it
            self.getProperty('history').setValue(pickle.dumps(dict()))

        # maybe defer that for later
        self.cleanup_history()

        self.main_layout = QSplitter(self)
        self.main_layout.setSizePolicy(QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding))

        # left part of the splitter
        self.history_box = QVBox(self.main_layout)
        self.history_box.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)

        self.sort_order = True

        self.sort_col = None

        self.history = QTable(self.history_box)
	self.history.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding))
        self.history.setSelectionMode(QTable.SingleRow)
        self.history.setNumCols(3)
        self.history.verticalHeader().hide()
        self.history.setLeftMargin(0)
        self.history.setSorting(False)
        QObject.connect(self.history,
                        SIGNAL('currentChanged(int,int)'),
                        self.history_changed)
    
        #by default sorting only sorts the columns and not whole rows.
        #let's reimplement that
        QObject.connect(self.history.horizontalHeader(),
                        SIGNAL('clicked(int)'),
                        self.sort_column)

        header = self.history.horizontalHeader()
        header.setLabel(0, 'Time and date')
        header.setLabel(1, 'Prefix')
        header.setLabel(2, 'Run number')
        
        self.clear_history_button = QPushButton('Clear history', self.history_box)
        self.history_box.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        QObject.connect(self.clear_history_button, SIGNAL('clicked()'),
                        self.clear_history)

        # Right part of the splitter
        self.browser_box = QWidget(self.main_layout)
        QVBoxLayout(self.browser_box)
        self.browser_box.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)

        self.top_layout = QHBoxLayout(self.browser_box)

        self.back_button = QToolButton(self.browser_box)
        self.back_button.setIconSet(QIconSet(Icons.load('Left2')))
        self.back_button.setTextLabel('Back')
        self.back_button.setUsesTextLabel(True)
        self.back_button.setTextPosition(QToolButton.BelowIcon)
        self.back_button.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))

        self.forward_button = QToolButton(self.browser_box)
        self.forward_button.setIconSet(QIconSet(Icons.load('Right2')))
        self.forward_button.setTextLabel('Forward')
        self.forward_button.setUsesTextLabel(True)
        self.forward_button.setTextPosition(QToolButton.BelowIcon)
        self.forward_button.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))

        self.top_layout.addWidget(self.back_button)
        self.top_layout.addWidget(self.forward_button)

        self.browser_box.layout().addLayout(self.top_layout)

        self.browser = QTextBrowser(self.browser_box)
        self.browser.setReadOnly(True)
	self.browser_box.layout().addWidget(self.browser)

        self.layout.addWidget(self.main_layout)

        #initially disabled
        self.forward_button.setEnabled(False)
        self.back_button.setEnabled(False)
        #connections
        QObject.connect(self.browser, SIGNAL('backwardAvailable(bool)'),
                        self.back_button.setEnabled)
#.........这里部分代码省略.........
开发者ID:douglasbeniz,项目名称:mxcube,代码行数:103,代码来源:BrowserBrick.py

示例2: PluginSettingsUi

# 需要导入模块: from qttable import QTable [as 别名]
# 或者: from qttable.QTable import setSorting [as 别名]
class PluginSettingsUi(QDialog):
    def __init__(self,parent = None,name = None,modal = 0,fl = 0):
        QDialog.__init__(self,parent,name,modal,fl)

        if not name:
            self.setName("PluginSettingsUi")

        self.setSizeGripEnabled(1)

        PluginSettingsUiLayout = QGridLayout(self,1,1,11,6,"PluginSettingsUiLayout")

        Layout1 = QHBoxLayout(None,0,6,"Layout1")
        Horizontal_Spacing2 = QSpacerItem(20,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
        Layout1.addItem(Horizontal_Spacing2)

        self.bt_ok = QPushButton(self,"bt_ok")
        self.bt_ok.setAutoDefault(1)
        self.bt_ok.setDefault(1)
        Layout1.addWidget(self.bt_ok)

        self.bt_cancel = QPushButton(self,"bt_cancel")
        self.bt_cancel.setAutoDefault(1)
        Layout1.addWidget(self.bt_cancel)

        PluginSettingsUiLayout.addMultiCellLayout(Layout1,1,1,0,1)

        self.lw_plugins = QListView(self,"lw_plugins")
        self.lw_plugins.addColumn(self.__tr("Plugin"))
        self.lw_plugins.header().setClickEnabled(0,self.lw_plugins.header().count() - 1)
        self.lw_plugins.setMinimumSize(QSize(300,0))
        self.lw_plugins.setMaximumSize(QSize(300,32767))
        self.lw_plugins.setResizePolicy(QListView.AutoOneFit)
        self.lw_plugins.setResizeMode(QListView.LastColumn)

        PluginSettingsUiLayout.addWidget(self.lw_plugins,0,0)

        self.frame3 = QFrame(self,"frame3")
        self.frame3.setMinimumSize(QSize(330,0))
        self.frame3.setFrameShape(QFrame.StyledPanel)
        self.frame3.setFrameShadow(QFrame.Raised)
        frame3Layout = QGridLayout(self.frame3,1,1,11,6,"frame3Layout")

        self.line1 = QFrame(self.frame3,"line1")
        self.line1.setFrameShape(QFrame.HLine)
        self.line1.setFrameShadow(QFrame.Sunken)
        self.line1.setFrameShape(QFrame.HLine)

        frame3Layout.addWidget(self.line1,3,0)

        self.t_parameters = QTable(self.frame3,"t_parameters")
        self.t_parameters.setSelectionMode(QTable.NoSelection)
        self.t_parameters.setNumCols(self.t_parameters.numCols() + 1)
        self.t_parameters.horizontalHeader().setLabel(self.t_parameters.numCols() - 1,self.__tr("Value"))
        self.t_parameters.horizontalHeader().setClickEnabled(False)
        self.t_parameters.setNumRows(self.t_parameters.numRows() + 1)
        self.t_parameters.verticalHeader().setLabel(self.t_parameters.numRows() - 1,self.__tr("Default                "))
        self.t_parameters.setMinimumSize(QSize(300,0))
        self.t_parameters.setResizePolicy(QTable.Default)
        self.t_parameters.setVScrollBarMode(QTable.AlwaysOn)
        self.t_parameters.setNumRows(1)
        self.t_parameters.setNumCols(1)
        self.t_parameters.setSorting(1)

        frame3Layout.addWidget(self.t_parameters,3,0)

        layout5 = QHBoxLayout(None,0,6,"layout5")

        self.label_name = QLabel(self.frame3,"label_name")
        self.label_name.setMinimumSize(QSize(67,0))
        self.label_name.setMaximumSize(QSize(67,32767))
        label_name_font = QFont(self.label_name.font())
        label_name_font.setBold(1)
        self.label_name.setFont(label_name_font)
        layout5.addWidget(self.label_name)

        self.le_name = QLineEdit(self.frame3,"le_name")
        self.le_name.setMinimumSize(QSize(250,0))
        self.le_name.setReadOnly(1)
        layout5.addWidget(self.le_name)

        frame3Layout.addLayout(layout5,0,0)

        layout6 = QHBoxLayout(None,0,6,"layout6")

        self.label_version = QLabel(self.frame3,"label_version")
        self.label_version.setMinimumSize(QSize(67,0))
        self.label_version.setMaximumSize(QSize(67,32767))
        label_version_font = QFont(self.label_version.font())
        label_version_font.setBold(1)
        self.label_version.setFont(label_version_font)
        layout6.addWidget(self.label_version)
        
        self.le_version = QLineEdit(self.frame3,"le_version")
        self.le_version.setMinimumSize(QSize(250,0))
        self.le_version.setReadOnly(1)
        layout6.addWidget(self.le_version)

        frame3Layout.addLayout(layout6,1,0)
        
        layout7 = QHBoxLayout(None,0,6,"layout7")
#.........这里部分代码省略.........
开发者ID:0x24bin,项目名称:BurpSuite,代码行数:103,代码来源:plugin_settings.py

示例3: BrowserBrick

# 需要导入模块: from qttable import QTable [as 别名]
# 或者: from qttable.QTable import setSorting [as 别名]
class BrowserBrick(BaseComponents.BlissWidget):
    def __init__(self, *args):
        BaseComponents.BlissWidget.__init__(self, *args)

        #map displayed string in the history list -> actual file path
        self.history_map = dict()

        self.layout = QVBoxLayout(self)

        self.defineSlot('load_file', ())
        self.defineSlot('login_changed', ())
        self.addProperty('mnemonic', 'string', '')
        self.addProperty('history', 'string', '', hidden=True)
        self.addProperty('sessions ttl (in days)', 'integer', '30')

        #make sure the history property is a pickled dict
        try:
            hist = pickle.loads(self.getProperty('history').getValue())
        except: # EOFError if the string is empty but let's not count on it
            self.getProperty('history').setValue(pickle.dumps(dict()))

        # maybe defer that for later
        self.cleanup_history()

        self.main_layout = QSplitter(self)
        self.main_layout.setSizePolicy(QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding))

        # left part of the splitter
        self.history_box = QVBox(self.main_layout)
        self.history_box.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)

        self.sort_order = True

        self.sort_col = None

        self.history = QTable(self.history_box)
        self.history.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding))
        self.history.setSelectionMode(QTable.SingleRow)
        self.history.setNumCols(3)
        self.history.verticalHeader().hide()
        self.history.setLeftMargin(0)
        self.history.setSorting(False)
        QObject.connect(self.history,
                        SIGNAL('currentChanged(int,int)'),
                        self.history_changed)
    
        #by default sorting only sorts the columns and not whole rows.
        #let's reimplement that
        QObject.connect(self.history.horizontalHeader(),
                        SIGNAL('clicked(int)'),
                        self.sort_column)

        header = self.history.horizontalHeader()
        header.setLabel(0, 'Time and date')
        header.setLabel(1, 'Prefix')
        header.setLabel(2, 'Run number')
        
        self.clear_history_button = QPushButton('Clear history', self.history_box)
        self.history_box.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        QObject.connect(self.clear_history_button, SIGNAL('clicked()'),
                        self.clear_history)

        # Right part of the splitter
        self.browser_box = QWidget(self.main_layout)
        QVBoxLayout(self.browser_box)
        self.browser_box.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)

        self.top_layout = QHBoxLayout(self.browser_box)

        self.back_button = QToolButton(self.browser_box)
        self.back_button.setIconSet(QIconSet(Icons.load('Left2')))
        self.back_button.setTextLabel('Back')
        self.back_button.setUsesTextLabel(True)
        self.back_button.setTextPosition(QToolButton.BelowIcon)
        self.back_button.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))

        self.forward_button = QToolButton(self.browser_box)
        self.forward_button.setIconSet(QIconSet(Icons.load('Right2')))
        self.forward_button.setTextLabel('Forward')
        self.forward_button.setUsesTextLabel(True)
        self.forward_button.setTextPosition(QToolButton.BelowIcon)
        self.forward_button.setSizePolicy(QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))

        self.top_layout.addWidget(self.back_button)
        self.top_layout.addWidget(self.forward_button)

        self.browser_box.layout().addLayout(self.top_layout)

        self.browser = QTextBrowser(self.browser_box)
        self.browser.setReadOnly(True)
        self.browser_box.layout().addWidget(self.browser)

        self.layout.addWidget(self.main_layout)

        #initially disabled
        self.forward_button.setEnabled(False)
        self.back_button.setEnabled(False)
        #connections
        QObject.connect(self.browser, SIGNAL('backwardAvailable(bool)'),
                        self.back_button.setEnabled)
#.........这里部分代码省略.........
开发者ID:MartinSavko,项目名称:mxcube,代码行数:103,代码来源:BrowserBrick.py

示例4: QtResultBrowseUi

# 需要导入模块: from qttable import QTable [as 别名]
# 或者: from qttable.QTable import setSorting [as 别名]
class QtResultBrowseUi(QDialog):
    def __init__(self,parent = None,name = None,modal = 0,fl = 0):
        QDialog.__init__(self,parent,name,modal,fl)

        if not name:
            self.setName("QtResultBrowseUi")


        QtResultBrowseUiLayout = QGridLayout(self,1,1,11,6,"QtResultBrowseUiLayout")

        self.splitter5 = QSplitter(self,"splitter5")
        self.splitter5.setOrientation(QSplitter.Vertical)

        self.splitter4 = QSplitter(self.splitter5,"splitter4")
        self.splitter4.setOrientation(QSplitter.Horizontal)

        self.tblValues = QTable(self.splitter4,"tblValues")
        self.tblValues.setSizePolicy(QSizePolicy(QSizePolicy.Minimum,QSizePolicy.Expanding,0,0,self.tblValues.sizePolicy().hasHeightForWidth()))
        tblValues_font = QFont(self.tblValues.font())
        tblValues_font.setFamily("Lucida Sans Typewriter")
        self.tblValues.setFont(tblValues_font)
        self.tblValues.setResizePolicy(QTable.Default)
        self.tblValues.setNumRows(23)
        self.tblValues.setNumCols(7)
        self.tblValues.setSorting(0)

        self.tabWidget2 = QTabWidget(self.splitter4,"tabWidget2")

        self.tab = QWidget(self.tabWidget2,"tab")
        tabLayout = QGridLayout(self.tab,1,1,11,6,"tabLayout")

        self.tblDetails = QTable(self.tab,"tblDetails")
        tblDetails_font = QFont(self.tblDetails.font())
        tblDetails_font.setFamily("Lucida Sans Typewriter")
        self.tblDetails.setFont(tblDetails_font)
        self.tblDetails.setNumRows(3)
        self.tblDetails.setNumCols(3)

        tabLayout.addWidget(self.tblDetails,0,0)
        self.tabWidget2.insertTab(self.tab,QString.fromLatin1(""))

        self.TabPage = QWidget(self.tabWidget2,"TabPage")
        TabPageLayout = QGridLayout(self.TabPage,1,1,11,6,"TabPageLayout")

        self.txtPointSummary = QTextEdit(self.TabPage,"txtPointSummary")
        txtPointSummary_font = QFont(self.txtPointSummary.font())
        txtPointSummary_font.setFamily("Lucida Sans Typewriter")
        self.txtPointSummary.setFont(txtPointSummary_font)
        self.txtPointSummary.setWordWrap(QTextEdit.NoWrap)

        TabPageLayout.addWidget(self.txtPointSummary,0,0)
        self.tabWidget2.insertTab(self.TabPage,QString.fromLatin1(""))

        self.tab_2 = QWidget(self.tabWidget2,"tab_2")
        tabLayout_2 = QVBoxLayout(self.tab_2,11,6,"tabLayout_2")

        self.txtNetlist = QTextEdit(self.tab_2,"txtNetlist")
        txtNetlist_font = QFont(self.txtNetlist.font())
        txtNetlist_font.setFamily("Lucida Sans Typewriter")
        self.txtNetlist.setFont(txtNetlist_font)
        self.txtNetlist.setWordWrap(QTextEdit.NoWrap)
        tabLayout_2.addWidget(self.txtNetlist)

        layout3 = QHBoxLayout(None,0,6,"layout3")

        self.chkBlockInfo = QCheckBox(self.tab_2,"chkBlockInfo")
        layout3.addWidget(self.chkBlockInfo)

        self.chkInfoString = QCheckBox(self.tab_2,"chkInfoString")
        layout3.addWidget(self.chkInfoString)
        tabLayout_2.addLayout(layout3)
        self.tabWidget2.insertTab(self.tab_2,QString.fromLatin1(""))

        self.TabPage_2 = QWidget(self.tabWidget2,"TabPage_2")
        TabPageLayout_2 = QVBoxLayout(self.TabPage_2,11,6,"TabPageLayout_2")

        self.txtIndString = QTextEdit(self.TabPage_2,"txtIndString")
        txtIndString_font = QFont(self.txtIndString.font())
        txtIndString_font.setFamily("Lucida Sans Typewriter")
        self.txtIndString.setFont(txtIndString_font)
        self.txtIndString.setWordWrap(QTextEdit.WidgetWidth)
        self.txtIndString.setWrapPolicy(QTextEdit.AtWordBoundary)
        TabPageLayout_2.addWidget(self.txtIndString)
        self.tabWidget2.insertTab(self.TabPage_2,QString.fromLatin1(""))

        self.TabPage_3 = QWidget(self.tabWidget2,"TabPage_3")
        TabPageLayout_3 = QVBoxLayout(self.TabPage_3,11,6,"TabPageLayout_3")

        self.matplotlibWidget1 = MatplotlibWidget(self.TabPage_3,"matplotlibWidget1")
        self.matplotlibWidget1.setSizePolicy(QSizePolicy(QSizePolicy.Preferred,QSizePolicy.Preferred,0,0,self.matplotlibWidget1.sizePolicy().hasHeightForWidth()))
        TabPageLayout_3.addWidget(self.matplotlibWidget1)

        self.groupBox3 = QGroupBox(self.TabPage_3,"groupBox3")
        self.groupBox3.setSizePolicy(QSizePolicy(QSizePolicy.Preferred,QSizePolicy.Maximum,0,0,self.groupBox3.sizePolicy().hasHeightForWidth()))
        self.groupBox3.setColumnLayout(0,Qt.Vertical)
        self.groupBox3.layout().setSpacing(6)
        self.groupBox3.layout().setMargin(11)
        groupBox3Layout = QGridLayout(self.groupBox3.layout())
        groupBox3Layout.setAlignment(Qt.AlignTop)

#.........这里部分代码省略.........
开发者ID:trentmc,项目名称:mojito_r_tapas,代码行数:103,代码来源:QtResultBrowseUi.py

示例5: ChangeSettingsUI

# 需要导入模块: from qttable import QTable [as 别名]
# 或者: from qttable.QTable import setSorting [as 别名]
class ChangeSettingsUI(QDialog):
    def __init__(self,parent = None,name = None,modal = 0,fl = 0):
        QDialog.__init__(self,parent,name,modal,fl)

        if not name:
            self.setName("Form1")


        Form1Layout = QVBoxLayout(self,11,6,"Form1Layout")

        self.splitter4 = QSplitter(self,"splitter4")
        self.splitter4.setOrientation(QSplitter.Horizontal)

        LayoutWidget = QWidget(self.splitter4,"layout29")
        layout29 = QGridLayout(LayoutWidget,1,1,11,6,"layout29")

        self.tblValues = QTable(LayoutWidget,"tblValues")
        self.tblValues.setResizePolicy(QTable.Default)
        self.tblValues.setNumRows(23)
        self.tblValues.setNumCols(7)
        self.tblValues.setSorting(0)

        layout29.addMultiCellWidget(self.tblValues,0,0,0,2)

        self.groupBox1 = QGroupBox(LayoutWidget,"groupBox1")
        self.groupBox1.setColumnLayout(0,Qt.Vertical)
        self.groupBox1.layout().setSpacing(6)
        self.groupBox1.layout().setMargin(11)
        groupBox1Layout = QGridLayout(self.groupBox1.layout())
        groupBox1Layout.setAlignment(Qt.AlignTop)

        layout5 = QGridLayout(None,1,1,0,6,"layout5")

        self.spinAnalysis = QSpinBox(self.groupBox1,"spinAnalysis")

        layout5.addWidget(self.spinAnalysis,1,1)

        self.textLabel1_2 = QLabel(self.groupBox1,"textLabel1_2")

        layout5.addWidget(self.textLabel1_2,2,0)

        self.chkSimulatable = QCheckBox(self.groupBox1,"chkSimulatable")

        layout5.addWidget(self.chkSimulatable,0,0)

        self.textLabel1 = QLabel(self.groupBox1,"textLabel1")

        layout5.addWidget(self.textLabel1,1,0)

        self.spinEnv = QSpinBox(self.groupBox1,"spinEnv")

        layout5.addWidget(self.spinEnv,2,1)

        groupBox1Layout.addLayout(layout5,0,0)

        layout8 = QVBoxLayout(None,0,6,"layout8")

        layout7 = QHBoxLayout(None,0,6,"layout7")

        self.chkAnnBB = QCheckBox(self.groupBox1,"chkAnnBB")
        layout7.addWidget(self.chkAnnBB)

        self.chkAnnPoint = QCheckBox(self.groupBox1,"chkAnnPoint")
        layout7.addWidget(self.chkAnnPoint)
        layout8.addLayout(layout7)

        layout4 = QHBoxLayout(None,0,6,"layout4")

        self.textLabel2 = QLabel(self.groupBox1,"textLabel2")
        layout4.addWidget(self.textLabel2)

        self.txtFilename = QLineEdit(self.groupBox1,"txtFilename")
        self.txtFilename.setSizePolicy(QSizePolicy(QSizePolicy.Expanding,QSizePolicy.Fixed,0,0,self.txtFilename.sizePolicy().hasHeightForWidth()))
        layout4.addWidget(self.txtFilename)

        self.btnOpenFile = QPushButton(self.groupBox1,"btnOpenFile")
        self.btnOpenFile.setSizePolicy(QSizePolicy(QSizePolicy.Preferred,QSizePolicy.Fixed,0,0,self.btnOpenFile.sizePolicy().hasHeightForWidth()))
        self.btnOpenFile.setMaximumSize(QSize(30,32767))
        layout4.addWidget(self.btnOpenFile)
        layout8.addLayout(layout4)

        self.btnNetlist = QPushButton(self.groupBox1,"btnNetlist")
        layout8.addWidget(self.btnNetlist)

        groupBox1Layout.addLayout(layout8,0,1)

        layout29.addMultiCellWidget(self.groupBox1,2,2,0,2)

        self.btnSave = QPushButton(LayoutWidget,"btnSave")

        layout29.addWidget(self.btnSave,1,1)

        self.btnUpdate = QPushButton(LayoutWidget,"btnUpdate")

        layout29.addWidget(self.btnUpdate,1,0)

        self.btnPrint = QPushButton(LayoutWidget,"btnPrint")

        layout29.addWidget(self.btnPrint,1,2)

#.........这里部分代码省略.........
开发者ID:trentmc,项目名称:mojito_r_tapas,代码行数:103,代码来源:change_ind_qt_ui.py


注:本文中的qttable.QTable.setSorting方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。