qtrace.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:vivisect-py3 作者: bat-serjo 项目源码 文件源码
def __init__(self, trace=None, parent=None):
        super(RegistersView, self).__init__(parent=parent)
        self.setWindowTitle('Registers')

        vbox = QtWidgets.QVBoxLayout(self)
        vbox.setContentsMargins(2, 2, 2, 2)
        vbox.setSpacing(4)

        self.viewnames = QtWidgets.QComboBox(self)
        self.regviews = {}
        self.flagviews = {}

        reg_groups = trace.archGetRegisterGroups()
        for name, group in reg_groups:
            self.regviews[name] = group
            self.viewnames.addItem(name)

        self.reglist = RegistersListView(trace=trace, parent=self)
        self.regdelegate = RegColorDelegate(self.reglist)
        self.reglist.setItemDelegate(self.regdelegate)
        # TODO: we should switch theme overall to monospace font
        # font = Qt.QFont('Courier New', 10)
        # self.reglist.setFont(font)

        vbox.addWidget(self.viewnames)

        # show general in dropdown by default if exists, otherwise all
        # (preferences will re-set)
        if 'general' in self.regviews:
            self.regViewNameSelected('general')
            idx = self.viewnames.findText('general')
            self.viewnames.setCurrentIndex(idx)
        else:
            self.regViewNameSelected('all')
            idx = self.viewnames.findText('all')
            self.viewnames.setCurrentIndex(idx)

        statusreg_widget = VQFlagsGridView(trace=trace, parent=self)
        statusreg_widget.setMaximumHeight(60)
        statusreg_widget.hide()

        splitview = QtWidgets.QSplitter(QtCore.Qt.Vertical)
        splitview.addWidget(self.reglist)
        splitview.addWidget(statusreg_widget)
        vbox.addWidget(splitview)

        self.viewnames.currentIndexChanged.connect(self.regViewNameSelected)

        self.setLayout(vbox)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号