Exemplo n.º 1
0
    def edit_team(self):
        datas = get_team_datas()
        head_lst = ['索引号', '队名', '项目', '分组']
        if datas:
            self.takeCentralWidget()
            main_frame = QScrollArea(self)
            main_frame.setStyleSheet(
                'QWidget{background-color:rgb(255,255,255)}')

            self.player_tabview = QTableView()
            r, c = len(datas), len(datas[0])
            self.player_model = QStandardItemModel(r, c)
            self.player_model.setHorizontalHeaderLabels(head_lst)
            for r, rdata in enumerate(datas):
                for c, cell in enumerate(rdata):
                    it = QStandardItem(str(cell))
                    if c == 0:
                        it.setEditable(False)
                    self.player_model.setItem(r, c, it)
            # keys = ['id','name','idcode','sex','age','work_place','tel']
            # edit_cell = functools.partial(self.edit_cell,obj,keys)
            # self.player_model.itemChanged.connect(edit_cell)

            self.player_tabview.setModel(self.player_model)

            boxlayout = QVBoxLayout()
            # boxlayout.addStretch(1)
            boxlayout.addWidget(self.player_tabview, 18)
            # boxlayout.addStretch(1)

            del_btn = QPushButton('删除')
            del_btn.clicked.connect(self.del_team)
            boxlayout.addWidget(del_btn)

            main_frame.setLayout(boxlayout)
            self.setCentralWidget(main_frame)
Exemplo n.º 2
0
    def __init__(self, main_window, queue):
        super(GUIManager, self).__init__()

        # main window
        self.w = main_window

        # main window decoration
        self.w.setGeometry(0, 0, 800, 600)
        self.w.setWindowTitle("Testbed GUI")
        self.w.setWindowIcon(QIcon('icons/animals-whale.png'))

        # the network data table model
        self.network_data_table_model = NetworkDataTableModel(queue)

        # the proxy model
        self.proxy_model = QSortFilterProxyModel()

        # the network data table
        self.network_table = QTableView()
        self.network_table.setSortingEnabled(True)
        self.network_table.setSelectionMode(QAbstractItemView.NoSelection)
        self.proxy_model.setSourceModel(self.network_data_table_model)
        self.network_table.setModel(self.proxy_model)
        self.w.setCentralWidget(self.network_table)
    def initUI(self):
        # 表格视图控件
        self.view = QTableView()
        # 使用QStandardItemModel(row,col)
        self.model = QStandardItemModel(4, 3)
        self.model.setHorizontalHeaderLabels(["列1", "列2", "列3"])

        self.model.setItem(0, 0, QStandardItem("1"))
        self.model.setItem(1, 0, QStandardItem("2"))
        self.model.setItem(2, 0, QStandardItem("3"))

        self.view.setModel(self.model)

        # 设置表格头部占满窗体
        self.view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        # 设置是否可编辑
        self.view.setEditTriggers(QAbstractItemView.NoEditTriggers)

        # 设置选中方式
        self.view.setSelectionBehavior(QAbstractItemView.SelectRows)

        # 获取点击处于哪一行
        self.view.clicked.connect(self.test)
Exemplo n.º 4
0
    def InitUserInterface(self):
        self.setMinimumWidth(300)
        self.setMinimumHeight(150)

        self.table_view = QTableView()
        self.table_view.setFont(QFont("SimSun", 9))
        self.table_view.setShowGrid(False)
        #self.table_view.setSortingEnabled(True) # 设置表头排序
        self.table_view.setEditTriggers(
            QAbstractItemView.NoEditTriggers)  # 禁止编辑
        self.table_view.setSelectionBehavior(
            QAbstractItemView.SelectRows)  # 选中整行
        self.table_view.setSelectionMode(
            QAbstractItemView.ExtendedSelection)  # 选择方式
        #self.table_view.setAlternatingRowColors(True) # 隔行变色
        self.table_view.setContextMenuPolicy(Qt.CustomContextMenu)  # 右键菜单
        self.table_view.customContextMenuRequested.connect(
            self.OnContextMenu)  # 菜单触发
        self.vertical_header = self.table_view.verticalHeader()  # 垂直表头
        self.vertical_header.setVisible(False)
        self.vertical_header.setDefaultSectionSize(17)
        self.vertical_header.setSectionResizeMode(QHeaderView.Fixed)  # 固定行高
        self.horizontal_header = self.table_view.horizontalHeader()  # 水平表头
        self.horizontal_header.setDefaultAlignment(Qt.AlignCenter)  # 显示居中
        self.info_list_model = QStandardItemModel()
        self.info_list_model.setColumnCount(len(self.head_name_list))
        for i in range(len(self.head_name_list)):
            self.info_list_model.setHeaderData(i, Qt.Horizontal,
                                               self.head_name_list[i])
        self.table_view.setModel(self.info_list_model)

        self.v_box = QVBoxLayout()
        self.v_box.setContentsMargins(5, 5, 5, 5)
        self.v_box.addWidget(self.table_view)

        self.setLayout(self.v_box)
Exemplo n.º 5
0
def _unittest_task_statistics_table_model():
    import time
    from PyQt5.QtWidgets import QApplication, QMainWindow

    app = QApplication([])
    win = QMainWindow()
    win.resize(800, 600)

    model = _TableModel(win)

    view = QTableView(win)
    view.setModel(model)
    view.setSortingEnabled(True)

    hh = QHeaderView(Qt.Horizontal, view)
    hh.setModel(model)
    hh.setVisible(True)

    view.setHorizontalHeader(hh)

    win.setCentralWidget(view)
    win.show()

    def go_go_go():
        for _ in range(1000):
            time.sleep(0.001)
            app.processEvents()

    go_go_go()

    model.set_data(_make_test_data())

    for _ in range(5):
        go_go_go()

    win.close()
Exemplo n.º 6
0
 def _setupUi(self):
     self.setWindowTitle(tr("Ignore List"))
     self.resize(540, 330)
     self.verticalLayout = QVBoxLayout(self)
     self.verticalLayout.setContentsMargins(0, 0, 0, 0)
     self.tableView = QTableView()
     self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
     self.tableView.setSelectionMode(QAbstractItemView.ExtendedSelection)
     self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
     self.tableView.setShowGrid(False)
     self.tableView.horizontalHeader().setStretchLastSection(True)
     self.tableView.verticalHeader().setDefaultSectionSize(18)
     self.tableView.verticalHeader().setHighlightSections(False)
     self.tableView.verticalHeader().setVisible(False)
     self.tableView.setWordWrap(False)
     self.verticalLayout.addWidget(self.tableView)
     self.removeSelectedButton = QPushButton(tr("Remove Selected"))
     self.clearButton = QPushButton(tr("Clear"))
     self.closeButton = QPushButton(tr("Close"))
     self.verticalLayout.addLayout(
         horizontalWrap([
             self.removeSelectedButton, self.clearButton, None,
             self.closeButton
         ]))
Exemplo n.º 7
0
    def __init__(self, parent=None):
        super(Contacts, self).__init__(parent)
        self.setWindowTitle("QTableView Example")
        self.resize(550, 250)

        # Set up the model
        self.model = QSqlTableModel(self)
        self.model.setTable("contacts")
        # EditStrategy can be set to OnFieldChange, OnRowChange or OnManualSubmit
        # OnFieldChange will modify the record immediately upon ENTER or selecting another field
        # OnRowChange will modify the record upon selecting a field in a different row
        # OnManualSubmit will cache all changes until either submitAll() or revertAll() is called
        self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.model.setHeaderData(0, Qt.Horizontal, "ID")
        self.model.setHeaderData(1, Qt.Horizontal, "Name")
        self.model.setHeaderData(2, Qt.Horizontal, "Job")
        self.model.setHeaderData(3, Qt.Horizontal, "Email")
        self.model.select()

        # Set up the view
        self.view = QTableView()
        self.view.setModel(self.model)
        self.view.resizeColumnsToContents()
        self.setCentralWidget(self.view)
Exemplo n.º 8
0
    def __init__(self, db):
        """
        Initialization of GUI.
        Creates all the necessary elements and the model with info to be displayed.

        :param db: server database
        """
        super().__init__()

        self.database = db

        self.setWindowTitle('История клиентов')
        self.setFixedSize(600, 700)
        self.setAttribute(Qt.WA_DeleteOnClose)

        self.close_button = QPushButton('Закрыть', self)
        self.close_button.move(250, 650)
        self.close_button.clicked.connect(self.close)

        self.user_history_table = QTableView(self)
        self.user_history_table.move(10, 10)
        self.user_history_table.setFixedSize(580, 620)

        self.create_message_history_model()
Exemplo n.º 9
0
 def __init__(self):
     super(DataTail, self).__init__()
     self.dataTable = QTableView()
     # self.dataTable.setModel(PandasModel(data))
     layout = QHBoxLayout()
     layout.addWidget(self.dataTable)
     layout_tail = QFormLayout()
     self.data_x1 = DataCol()
     self.data_x2 = DataCol()
     self.data_x3 = DataCol()
     self.data_x4 = DataCol()
     self.data_y = DataCol()
     layout_tail.addRow(QLabel("X1:"), self.data_x1)
     layout_tail.addRow(QLabel("X2:"), self.data_x2)
     layout_tail.addRow(QLabel("X3:"), self.data_x3)
     layout_tail.addRow(QLabel("X4:"), self.data_x4)
     layout_tail.addRow(QLabel("Y:"), self.data_y)
     btn_add = QPushButton("添加到任务")
     btn_add.clicked.connect(self.btn_click)
     layout_tail.addRow(btn_add)
     layout.addLayout(layout_tail)
     layout.setStretch(0, 5)
     layout.setStretch(1, 1)
     self.setLayout(layout)
Exemplo n.º 10
0
    def create_table(self):
        # create the view
        tv = QTableView()

        # set the table model
        tablemodel = PandasTable(self.load_daily_csv())
        tv.setModel(tablemodel)
        tv.setBaseSize(995, 800)
        # hide grid
        tv.setShowGrid(False)

        vh = tv.verticalHeader()
        vh.setVisible(True)

        # set horizontal header properties
        hh = tv.horizontalHeader()
        hh.setStretchLastSection(True)

        # set row height
        tv.resizeRowsToContents()

        # enable sorting
        tv.setSortingEnabled(False)
        return tv
Exemplo n.º 11
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.termListTblWdg = QTableView()
        self.termTableModel = OntoTermsListModel(parent=self)
        self.termListTblWdg.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.termListTblWdg.setSelectionMode(QAbstractItemView.SingleSelection)
        self.termListTblWdg.setModel(self.termTableModel)

        self.termListTblWdg.setColumnWidth(0, 300)
        self.termListTblWdg.setColumnWidth(1, 200)

        # Signals
        self.termSelectionModel = self.termListTblWdg.selectionModel()
        self.termSelectionModel.selectionChanged.connect(self.termSelected)
        #self.termTableModel.layoutChanged.connect(self.termTableLayoutChanged)

        self.autoCompleteTxt = OntoAutoComplete(self)
        self.autoCompleteTxt.completionTerminated.connect(
            self.completionUpdate)

        grid = QGridLayout(self)
        grid.addWidget(self.termListTblWdg, 0, 0)
        grid.addWidget(self.autoCompleteTxt, 1, 0)
Exemplo n.º 12
0
 def __init__(self, parent=None):
     super(Viewer, self).__init__(parent)
     self.MaxRecentFiles = 5
     self.windowList = []
     self.recentFiles = []
     self.settings = QSettings('Axel Schneider', 'QTableViewPandas')
     self.filename = ""
     self.setGeometry(0, 0, 800, 600)
     self.lb = QTableView()
     self.lb.verticalHeader().setVisible(True)
     self.lb.setGridStyle(1)
     self.model = PandasModel()
     self.lb.setModel(self.model)
     self.lb.setEditTriggers(QAbstractItemView.DoubleClicked)
     self.lb.setSelectionBehavior(self.lb.SelectRows)
     self.lb.setSelectionMode(self.lb.SingleSelection)
     self.setStyleSheet(stylesheet(self))
     self.lb.setAcceptDrops(True)
     self.setCentralWidget(self.lb)
     self.setContentsMargins(10, 10, 10, 10)
     self.createToolBar()
     self.readSettings()
     self.lb.setFocus()
     self.statusBar().showMessage("Ready", 0)
Exemplo n.º 13
0
 def init_crawl_widget(self):
     self.llayout = QVBoxLayout()
     self.crawl_widget.setLayout(self.llayout)
     self.log_label = QLabel("Log")
     self.log_list = QTableView()
     self.log_model = QStandardItemModel()
     self.log_model.setColumnCount(3)
     self.log_model.setHorizontalHeaderLabels(["Status", "Time", "Message"])
     self.log_list.setModel(self.log_model)
     self.log_list.horizontalHeader().setSectionResizeMode(
         QHeaderView.Stretch)
     self.log_list.horizontalHeader().setSectionResizeMode(
         0, QHeaderView.ResizeToContents)
     self.log_list.horizontalHeader().setSectionResizeMode(
         1, QHeaderView.ResizeToContents)
     self.log_list.horizontalHeader().setSectionResizeMode(
         2, QHeaderView.ResizeToContents)
     log_widget = QWidget()
     log_layout = QVBoxLayout()
     log_layout.addWidget(self.log_label)
     log_layout.addWidget(self.log_list)
     log_widget.setLayout(log_layout)
     self.rule_label = QLabel("Rule")
     self.rule_edit = QTextEdit()
     rule_widget = QWidget()
     rule_layout = QVBoxLayout()
     rule_layout.addWidget(self.rule_label)
     rule_layout.addWidget(self.rule_edit)
     rule_widget.setLayout(rule_layout)
     self.crawl_button = QPushButton('Crawl')
     self.llayout.addWidget(log_widget)
     self.llayout.addWidget(rule_widget)
     self.llayout.addWidget(self.crawl_button)
     self.llayout.setStretch(0, 15)
     self.llayout.setStretch(1, 6)
     self.llayout.setStretch(2, 1)
    def initUI(self):
        viewLabel = QLabel()
        viewLabel.setText("Team Configuration")
        viewLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)

        self.leadRbtn = QRadioButton()
        self.leadRbtn.setText("Lead")

        self.leadIpLbl = QLabel()
        self.leadIpLbl.setText("Lead IP Address")
        self.leadIp = QLineEdit()

        self.ipContainer = QHBoxLayout()
        self.ipContainer.addWidget(self.leadIpLbl)
        self.ipContainer.addWidget(self.leadIp)

        self.connectionsLbl = QLabel()
        self.connectionsLbl.setText("Connections")

        self.connectionsView = QTableView()

        self.connectBtn = QPushButton()
        self.connectBtn.setText("Connect")
        self.connectBtn.clicked.connect(self.connect)
        if self.hide == True:
            self.connectBtn.hide()

        teamViewContainer = QVBoxLayout()
        teamViewContainer.addWidget(viewLabel)
        teamViewContainer.addWidget(self.leadRbtn)
        teamViewContainer.addLayout(self.ipContainer)
        teamViewContainer.addWidget(self.connectionsLbl)
        teamViewContainer.addWidget(self.connectionsView)
        teamViewContainer.addWidget(self.connectBtn)

        self.setLayout(teamViewContainer)
Exemplo n.º 15
0
 def __init__(self, data_list, header, *args):
     QWidget.__init__(
         self,
         *args,
     )
     self.setGeometry(100, 50, 1800, 900)
     self.setWindowTitle('Artikelen opvragen')
     self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
     self.setWindowFlags(self.windowFlags() | Qt.WindowSystemMenuHint
                         | Qt.WindowMinMaxButtonsHint)
     table_model = MyTableModel(self, data_list, header)
     table_view = QTableView()
     table_view.setModel(table_model)
     font = QFont("Arial", 10)
     table_view.setFont(font)
     table_view.resizeColumnsToContents()
     table_view.setSelectionBehavior(QTableView.SelectRows)
     table_view.setItemDelegateForColumn(3, showImage(self))
     table_view.setColumnWidth(3, 100)
     table_view.verticalHeader().setDefaultSectionSize(75)
     table_view.clicked.connect(showArtikel)
     layout = QVBoxLayout(self)
     layout.addWidget(table_view)
     self.setLayout(layout)
    def __init__(self, model: VehiclesModel, parent=None):
        super(Coordinates, self).__init__(parent)

        self.setFixedSize(APP_WIDTH, APP_HEIGHT)
        self.setWindowTitle('Vehicles\' coordinates')

        vbox = QVBoxLayout()
        self.setLayout(vbox)

        view = QTableView()
        view.setModel(model)
        view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        view.setSelectionMode(QTableView.NoSelection)
        vbox.addWidget(view)

        for i in range(0, model.columnCount()):
            view.setColumnHidden(i, True)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.NAME), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.X_MIN), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.Y_MIN), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.Z_MIN), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.X_MAX), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.Y_MAX), False)
        view.setColumnHidden(VehiclesModel.attr.index(Headers.Z_MAX), False)
    def showDeletePolymer(self):
        try:
            # del_polymer = self.ui3.lineEdit_4.text()
            # del_polymer_list = del_polymer.split(',')
            # del_polymer_list.sort(key=natural_keys)
            # table_adel = deletePolymer(self.fasA,del_polymer_list)

            model_adel = pandasModel(self.table_adel2)
            self.view_adel = QTableView()
            self.view_adel.horizontalHeader().setSectionResizeMode(
                QtWidgets.QHeaderView.Stretch)
            self.view_adel.setSizeAdjustPolicy(
                QtWidgets.QAbstractScrollArea.AdjustToContents)
            self.view_adel.resizeColumnsToContents()
            self.view_adel.resizeRowsToContents()
            self.view_adel.setModel(model_adel)
            self.view_adel.setWindowTitle('Frac v size after deletion')
            self.view_adel.resize(1000, 600)
            self.view_adel.show()
        except:
            error_dialog = QtWidgets.QErrorMessage()
            error_dialog.showMessage(
                'Cannot show table. Please check deletion polymers')
            error_dialog.exec_()
Exemplo n.º 18
0
#        """Sort table by given column number."""
#        try:
#            self.layoutAboutToBeChanged.emit()
#            self._df = self._df.sort_values(self._df.columns[column_index], ascending=not order)
#            self.layoutChanged.emit()
#        except Exception as e:
#            print(e)

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

    NUM_ROWS = 50
    NUM_COLUMNS = 10
    df = pd.DataFrame(
        np.random.randint(0, 100, size=[NUM_ROWS, NUM_COLUMNS]),
        index=["row{}".format(index) for index in range(NUM_ROWS)],
        columns=["col{}".format(index) for index in range(NUM_COLUMNS)])

    table_view = QTableView()
    my_model = PandasModel(df=df)
    table_view.setModel(my_model)
    table_view.show()

    # The mainloop of the application. The event handling starts from this point.
    # The exec_() method has an underscore. It is because the exec is a Python keyword. And thus, exec_() was used instead.
    exit_code = app.exec_()

    # The sys.exit() method ensures a clean exit.
    # The environment will be informed, how the application ended.
    sys.exit(exit_code)
    def __init__(self, parser, resources_path):
        #super().__init__()
        super(ExchangeQueuesBindingsMenu, self).__init__()

        __IMAGES_PATH__ = resources_path + '/images'

        self.setWindowTitle("RabbitMQ Utility - Add Exchange/Queues/Bindings"
                            )  # Set the window title

        #self.setWindowIcon(QtGui.QIcon(__IMAGES_PATH__ + '/rabbit_icon.jpg'))

        self.setWindowFlags(QtCore.Qt.WindowSystemMenuHint
                            | QtCore.Qt.WindowCloseButtonHint)
        #------------------------------
        #self.app = app

        self.sessionAvailable = False

        self.session = None

        self.eqbConnection = None

        self.elist = None
        self.qlist = None

        self.exchangeadd = False
        self.queueadd = False
        self.bindadd = False

        self.parser = parser
        #------------------------------
        self.qapp = QApplication([])
        #V = self.qapp.desktop().screenGeometry()
        #h = V.height() - 600
        #w = V.width() - 600

        h = 800
        w = 800

        self.resize(w, h)

        #self.login = LoginDialog(self.parser)
        self.login = ConnectMenu(self.parser, resources_path)

        self.login._cancelled.connect(self.loginCancelled)

        self.login._webUrl.connect(self.getWebConnectionUrl)
        self.login._commandUrl.connect(self.getCommandConnectionUrl)
        self.login._userId.connect(self.getConnectionUser)
        self.login._password.connect(self.getConnectionPassword)
        self.login._vhost.connect(self.getConnectionVhost)
        self.login._certName.connect(self.getConnectionCertName)
        self.login._certPass.connect(self.getConnectionCertPass)

        self.loginmw = windows.ModernWindow(self.login, self.parser)

        self.widget = QWidget()

        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)

        self.fromParent = False

        self.frame = None

        #----------------------------------------- MENU BAR -------------------------------------------------
        # Create Connect
        self.connectAction = QAction(QIcon(__IMAGES_PATH__ + '/connect.png'),
                                     '&Connect', self)
        self.connectAction.setShortcut('ALT+C')
        self.connectAction.setStatusTip('Connect')
        self.connectAction.triggered.connect(self.show_login)
        self.connectAction.setEnabled(False)

        # Create Disconnect
        self.disconnectAction = QAction(
            QIcon(__IMAGES_PATH__ + '/disconnect.png'), '&DisConnect', self)
        self.disconnectAction.setShortcut('ALT+D')
        self.disconnectAction.setStatusTip('Disconnect')
        self.disconnectAction.triggered.connect(self.disconnect)

        # Create Refresh
        self.refreshAction = QAction(QIcon(__IMAGES_PATH__ + '/refresh.png'),
                                     '&Refresh', self)
        self.refreshAction.setShortcut('ALT+D')
        self.refreshAction.setStatusTip('Refresh')
        self.refreshAction.triggered.connect(self.refresh)

        # Create Exit action
        self.exitAction = QAction(QIcon(__IMAGES_PATH__ + '/terminate.png'),
                                  '&Exit', self)
        self.exitAction.setShortcut('Ctrl+Q')
        self.exitAction.setStatusTip('Exit application')
        self.exitAction.triggered.connect(self.closewin)

        menuBar = self.menuBar()
        fileMenu = menuBar.addMenu('&File')
        fileMenu.addAction(self.connectAction)
        fileMenu.addAction(self.disconnectAction)
        fileMenu.addAction(self.refreshAction)
        fileMenu.addAction(self.exitAction)

        self.toolbar = self.addToolBar('')
        self.toolbar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

        self.toolbar.setFloatable(False)
        self.toolbar.setMovable(False)

        #self.toolbar.setIconSize(QSize(50,50))
        #self.toolbar.setGeometry(100, 100, 400, 400)

        #------------ Connect -------------
        self.loginButton = QAction(QIcon(__IMAGES_PATH__ + '/connect.png'),
                                   '&Connect', self)
        self.loginButton.setIconText('Connect')
        self.loginButton.triggered.connect(self.show_login)
        self.loginButton.setEnabled(False)
        self.loginButton.setStatusTip("Click here to login into server")
        self.toolbar.addAction(self.loginButton)

        #------------ Refresh -------------
        self.refreshButton = QAction(QIcon(__IMAGES_PATH__ + '/refresh.png'),
                                     '&Refresh', self)
        self.refreshButton.triggered.connect(self.refresh)
        self.refreshButton.setStatusTip("Click here to refresh data")
        self.toolbar.addAction(self.refreshButton)

        self.toolbar.addSeparator()

        #------------ Disconnect -------------
        self.disconnectButton = QAction(
            QIcon(__IMAGES_PATH__ + '/disconnect.png'), '&Disconnect', self)
        self.disconnectButton.triggered.connect(self.disconnect)
        self.disconnectButton.setStatusTip(
            "Click here to disconnect from server")
        self.toolbar.addAction(self.disconnectButton)

        #------------ Exit -------------
        self.exitButton = QAction(QIcon(__IMAGES_PATH__ + '/terminate.png'),
                                  '&Exit', self)
        self.exitButton.triggered.connect(self.closewin)
        self.exitButton.setStatusTip(
            "Click here to close and exit this application")
        self.toolbar.addAction(self.exitButton)

        vBoxEQB = QVBoxLayout()

        #---------------- Top ----------------------------------
        hboxEQB1 = QHBoxLayout()
        vboxEx = QVBoxLayout()
        vboxQ = QVBoxLayout()

        self.xgroupBox = QGroupBox("Add a new exchange")

        layoutEx = QFormLayout()

        self.evhostLabel = QLabel("Virtual Host:")
        self.evhost = QComboBox()

        self.exNameLabel = QLabel("Name:")
        self.exName = QLineEdit()
        self.exName.textChanged[str].connect(
            lambda: self.addExchangeButton.setEnabled(self.exName.text() != ""
                                                      ))
        self.exName.textChanged[str].connect(
            lambda: self.delExchangeButton.setEnabled(self.exName.text() != ""
                                                      ))

        self.exTypeLabel = QLabel("Type:")
        self.exType = QComboBox()
        self.durabilityLabel = QLabel("Durability")
        self.durability = QComboBox()
        self.durability.addItem("Durable")
        self.durability.addItem("Transient")

        self.autoDeleteLabel = QLabel("Auto Delete?:")
        self.autoDelete = QComboBox()
        self.autoDelete.addItem("No")
        self.autoDelete.addItem("Yes")

        self.internalLabel = QLabel("Internal?:")
        self.internal = QComboBox()
        self.internal.addItem("No")
        self.internal.addItem("Yes")

        self.addExchangeButton = QPushButton("Add exchange")
        self.addExchangeButton.setObjectName('addExchange')
        self.addExchangeButton.clicked.connect(self.buttonClicked)
        self.addExchangeButton.setEnabled(False)

        self.delExchangeButton = QPushButton("Delete exchange")
        self.delExchangeButton.setObjectName('delExchange')
        self.delExchangeButton.clicked.connect(self.buttonClicked)
        self.delExchangeButton.setEnabled(False)

        self.exArgsGroupBox = QGroupBox("Arguments")

        vboxexargstable = QVBoxLayout()

        hboxbuttonexargs = QHBoxLayout()

        self.exArgsAddButton = QPushButton("")
        self.exArgsDelButton = QPushButton("")

        self.exArgsAddButton.setIcon(QIcon(__IMAGES_PATH__ + '/addrow.png'))
        self.exArgsAddButton.setIconSize(QSize(25, 25))

        self.exArgsDelButton.setIcon(QIcon(__IMAGES_PATH__ + '/deleterow.png'))
        self.exArgsDelButton.setIconSize(QSize(25, 25))

        self.exArgsAddButton.setObjectName('addExArgsKey')
        self.exArgsDelButton.setObjectName('delExArgsKey')
        self.exArgsDelButton.setEnabled(False)
        self.exArgsAddButton.clicked.connect(self.buttonClicked)
        self.exArgsDelButton.clicked.connect(self.buttonClicked)

        hboxbuttonexargs.addWidget(QLabel("      "))
        hboxbuttonexargs.addWidget(QLabel("      "))
        hboxbuttonexargs.addWidget(QLabel("      "))
        hboxbuttonexargs.addWidget(QLabel("      "))
        hboxbuttonexargs.addWidget(self.exArgsAddButton)
        hboxbuttonexargs.addWidget(self.exArgsDelButton)

        vboxexargstable.addLayout(hboxbuttonexargs)

        headers = ["Key", "Value"]
        datainex = []

        self.exargstablemodel = TableModel(datainex, headers, self)
        self.exargstablemodelview = QTableView()
        self.exargstablemodelview.setSelectionMode(
            QAbstractItemView.SingleSelection)

        self.exargstablemodelview.clicked.connect(
            self.showTableSelectedRowColumn)

        self.set_table_view_attributes(self.exargstablemodelview,
                                       self.exargstablemodel, datainex)

        vboxexargstable.addWidget(self.exargstablemodelview)

        self.exArgsGroupBox.setLayout(vboxexargstable)

        layoutEx.addRow(self.evhostLabel, self.evhost)
        layoutEx.addRow(self.exNameLabel, self.exName)
        layoutEx.addRow(self.exTypeLabel, self.exType)
        layoutEx.addRow(self.durabilityLabel, self.durability)
        layoutEx.addRow(self.autoDeleteLabel, self.autoDelete)
        layoutEx.addRow(self.internalLabel, self.internal)
        layoutEx.addRow(self.exArgsGroupBox)

        exbuttonlayout = QHBoxLayout()
        exbuttonlayout.addWidget(self.addExchangeButton)
        exbuttonlayout.addWidget(self.delExchangeButton)
        exbuttonlayout.addWidget(QLabel(""))

        layoutEx.addRow(exbuttonlayout)

        self.xgroupBox.setLayout(layoutEx)

        vboxEx.addWidget(self.xgroupBox)
        hboxEQB1.addLayout(vboxEx, 0)

        #------------- Queue --------------------------------------------

        self.qgroupBox = QGroupBox("Add a new queue")

        layoutQ = QFormLayout()

        self.qvhostLabel = QLabel("Virtual Host:")
        self.qvhost = QComboBox()

        self.qNameLabel = QLabel("Name:")
        self.qName = QLineEdit()
        self.qName.textChanged[str].connect(
            lambda: self.addQueueButton.setEnabled(self.qName.text() != ""))
        self.qName.textChanged[str].connect(
            lambda: self.delQueueButton.setEnabled(self.qName.text() != ""))
        self.qName.textChanged[str].connect(
            lambda: self.purgeQueueButton.setEnabled(self.qName.text() != ""))

        #self.qNodeLabel = QLabel("Node:")
        #self.qNode = QComboBox()

        self.qDurabilityLabel = QLabel("Durability")
        self.qDurability = QComboBox()
        self.qDurability.addItem("Durable")
        self.qDurability.addItem("Transient")

        self.qAutoDeleteLabel = QLabel("Auto Delete?:")
        self.qAutoDelete = QComboBox()
        self.qAutoDelete.addItem("No")
        self.qAutoDelete.addItem("Yes")

        self.addQueueButton = QPushButton("Add queue")
        self.addQueueButton.setObjectName('addQueue')
        self.addQueueButton.clicked.connect(self.buttonClicked)
        self.addQueueButton.setEnabled(False)

        self.delQueueButton = QPushButton("Delete queue")
        self.delQueueButton.setObjectName('delQueue')
        self.delQueueButton.clicked.connect(self.buttonClicked)
        self.delQueueButton.setEnabled(False)

        self.purgeQueueButton = QPushButton("Purge queue")
        self.purgeQueueButton.setObjectName('purgeQueue')
        self.purgeQueueButton.clicked.connect(self.buttonClicked)
        self.purgeQueueButton.setEnabled(False)

        self.qArgsGroupBox = QGroupBox("Arguments")

        vboxqargstable = QVBoxLayout()

        hboxbuttonqargs = QHBoxLayout()

        self.qArgsAddButton = QPushButton("")
        self.qArgsDelButton = QPushButton("")

        self.qArgsAddButton.setIcon(QIcon(__IMAGES_PATH__ + '/addrow.png'))
        self.qArgsAddButton.setIconSize(QSize(25, 25))

        self.qArgsDelButton.setIcon(QIcon(__IMAGES_PATH__ + '/deleterow.png'))
        self.qArgsDelButton.setIconSize(QSize(25, 25))

        self.qArgsAddButton.setObjectName('addQArgsKey')
        self.qArgsDelButton.setObjectName('delQArgsKey')
        self.qArgsDelButton.setEnabled(False)
        self.qArgsAddButton.clicked.connect(self.buttonClicked)
        self.qArgsDelButton.clicked.connect(self.buttonClicked)

        hboxbuttonqargs.addWidget(QLabel("      "))
        hboxbuttonqargs.addWidget(QLabel("      "))
        hboxbuttonqargs.addWidget(QLabel("      "))
        hboxbuttonqargs.addWidget(QLabel("      "))
        hboxbuttonqargs.addWidget(self.qArgsAddButton)
        hboxbuttonqargs.addWidget(self.qArgsDelButton)

        vboxqargstable.addLayout(hboxbuttonqargs)

        headers = ["Key", "Value"]
        datainq = []

        self.qargstablemodel = TableModel(datainq, headers, self)
        self.qargstablemodelview = QTableView()
        self.qargstablemodelview.setSelectionMode(
            QAbstractItemView.SingleSelection)

        self.qargstablemodelview.clicked.connect(
            self.showTableSelectedRowColumn)

        self.set_table_view_attributes(self.qargstablemodelview,
                                       self.qargstablemodel, datainq)

        vboxqargstable.addWidget(self.qargstablemodelview)

        self.qArgsGroupBox.setLayout(vboxqargstable)

        layoutQ.addRow(self.qvhostLabel, self.qvhost)
        layoutQ.addRow(self.qNameLabel, self.qName)
        layoutQ.addRow(self.qDurabilityLabel, self.qDurability)
        #layoutQ.addRow(self.qNodeLabel, self.qNode)
        layoutQ.addRow(self.qAutoDeleteLabel, self.qAutoDelete)
        layoutQ.addRow(QLabel(""), QLabel(""))
        layoutQ.addRow(QLabel(""), QLabel(""))
        layoutQ.addRow(self.qArgsGroupBox)

        qbuttonlayout = QHBoxLayout()
        qbuttonlayout.addWidget(self.addQueueButton)
        qbuttonlayout.addWidget(self.delQueueButton)
        qbuttonlayout.addWidget(self.purgeQueueButton)

        layoutQ.addRow(qbuttonlayout)

        self.qgroupBox.setLayout(layoutQ)

        vboxQ.addWidget(self.qgroupBox)
        hboxEQB1.addLayout(vboxQ, 0)

        #-------------------  Bottom ----------------------
        hboxEQB2 = QHBoxLayout()

        layoutBinding = QFormLayout()

        self.bindinggroupBox = QGroupBox("Add a new binding")

        self.exchange2queue = QRadioButton("Exchange to Queue")
        self.exchange2exchange = QRadioButton("Exchange to Exchange")

        self.exchange2queue.setChecked(True)

        self.exchange2queue.toggled.connect(
            lambda: self.btnstate(self.exchange2queue))
        self.exchange2exchange.toggled.connect(
            lambda: self.btnstate(self.exchange2exchange))

        self.sourceLabel = QLabel("Source:")
        self.source = QComboBox()

        self.targetLabel = QLabel("Target:")
        self.target = QComboBox()

        self.target.currentIndexChanged['QString'].connect(
            lambda: self.addBindButton.setEnabled(self.target.currentText() !=
                                                  self.source.currentText()))
        self.target.currentIndexChanged['QString'].connect(
            lambda: self.addUnbindButton.setEnabled(self.target.currentText(
            ) != self.source.currentText()))

        self.rkeyLabel = QLabel("Routing Key:")
        self.rkey = QLineEdit()

        self.addBindButton = QPushButton("Bind")
        self.addBindButton.setObjectName('addBind')
        self.addBindButton.setEnabled(False)
        self.addBindButton.clicked.connect(self.buttonClicked)

        self.addUnbindButton = QPushButton("UnBind")
        self.addUnbindButton.setObjectName('unBind')
        self.addUnbindButton.setEnabled(False)
        self.addUnbindButton.clicked.connect(self.buttonClicked)

        self.bindingArgsGroupBox = QGroupBox("Arguments")

        vboxbindingargstable = QVBoxLayout()

        hboxbuttonbindingargs = QHBoxLayout()

        self.bindingArgsAddButton = QPushButton("")
        self.bindingArgsDelButton = QPushButton("")

        self.bindingArgsAddButton.setIcon(
            QIcon(__IMAGES_PATH__ + '/addrow.png'))
        self.bindingArgsAddButton.setIconSize(QSize(25, 25))

        self.bindingArgsDelButton.setIcon(
            QIcon(__IMAGES_PATH__ + '/deleterow.png'))
        self.bindingArgsDelButton.setIconSize(QSize(25, 25))

        self.bindingArgsAddButton.setObjectName('addBindArgsKey')
        self.bindingArgsDelButton.setObjectName('delBindArgsKey')
        self.bindingArgsDelButton.setEnabled(False)

        self.bindingArgsAddButton.clicked.connect(self.buttonClicked)
        self.bindingArgsDelButton.clicked.connect(self.buttonClicked)

        hboxbuttonbindingargs.addWidget(QLabel("      "))
        hboxbuttonbindingargs.addWidget(QLabel("      "))
        hboxbuttonbindingargs.addWidget(QLabel("      "))
        hboxbuttonbindingargs.addWidget(QLabel("      "))
        hboxbuttonbindingargs.addWidget(self.bindingArgsAddButton)
        hboxbuttonbindingargs.addWidget(self.bindingArgsDelButton)

        headers = ["Key", "Value"]
        datainbinding = []

        self.bindingargstablemodel = TableModel(datainbinding, headers, self)
        self.bindingargstablemodelview = QTableView()
        self.bindingargstablemodelview.setSelectionMode(
            QAbstractItemView.SingleSelection)

        self.bindingargstablemodelview.clicked.connect(
            self.showTableSelectedRowColumn)

        self.set_table_view_attributes(self.bindingargstablemodelview,
                                       self.bindingargstablemodel,
                                       datainbinding)

        self.bindingArgsGroupBox.setLayout(vboxbindingargstable)

        vboxbindingargstable.addLayout(hboxbuttonbindingargs)
        vboxbindingargstable.addWidget(self.bindingargstablemodelview)

        layoutBinding.addRow(self.exchange2queue, self.exchange2exchange)
        layoutBinding.addRow(self.sourceLabel, self.source)
        layoutBinding.addRow(self.targetLabel, self.target)
        layoutBinding.addRow(self.rkeyLabel, self.rkey)
        layoutBinding.addRow(self.bindingArgsGroupBox)

        bindbuttonlayout = QHBoxLayout()
        bindbuttonlayout.addWidget(self.addBindButton)
        bindbuttonlayout.addWidget(self.addUnbindButton)

        layoutBinding.addRow(bindbuttonlayout)

        self.bindinggroupBox.setLayout(layoutBinding)

        hboxEQB2.addWidget(self.bindinggroupBox)

        vBoxEQB.addLayout(hboxEQB1)
        vBoxEQB.addLayout(hboxEQB2)

        self.widget.setLayout(vBoxEQB)

        self.setCentralWidget(self.widget)
Exemplo n.º 20
0
class pandasModel(QAbstractTableModel):
    def __init__(self, data):
        QAbstractTableModel.__init__(self)
        self._data = data

    def rowCount(self, parent=None):
        return self._data.shape[0]

    def columnCount(self, parnet=None):
        return self._data.shape[1]

    def data(self, index, role=Qt.DisplayRole):
        if index.isValid():
            if role == Qt.DisplayRole:
                return str(self._data.iloc[index.row(), index.column()])
        return None

    def headerData(self, col, orientation, role):
        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
            return self._data.columns[col]
        return None


if __name__ == '__main__':
    app = QApplication(sys.argv)
    model = pandasModel(df)
    view = QTableView()
    view.setModel(model)
    view.show()
    sys.exit(app.exec_())
Exemplo n.º 21
0
    def __init__(self, parent):
        super().__init__(parent)
        self.logger = logging.getLogger(__name__)
        self.config = Configuration()
        self.filenames = []
        self.data = ''

        # left part of frame
        header_left = [
            _("Relative Path"),
            _("Name"),
            _("Size"),
            _("Date Modified")
        ]
        self.file_model = FileTableModel(self, header_left, [])

        self.file_view = QTableView()
        self.file_view.setModel(self.file_model)
        self.file_view.setSortingEnabled(True)
        self.file_view.setAlternatingRowColors(True)
        self.file_view.setShowGrid(False)

        # adjustments
        self.file_view.verticalHeader().setDefaultSectionSize(22)
        #self.file_view.horizontalHeader().setDefaultSectionSize(self.file_view.width()/len(header))
        #self.file_view.horizontalHeader().setStretchLastSection(True)
        self.file_view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.file_view.setSelectionBehavior(QAbstractItemView.SelectRows)

        self.file_view.doubleClicked.connect(self.file_view_doubleclicked)
        #self.file_view.clicked.connect(self.file_view_clicked)
        self.file_view.selectionModel().selectionChanged.connect(
            self.file_view_selection_changed)
        #self.file_view.setContextMenuPolicy(Qt.CustomContextMenu)
        #self.file_view.customContextMenuRequested.connect(self.file_view_context_menu_requested)

        #self.lb_nsfc = QLabel("")
        self.lb_path = QLabel("")
        self.lb_path.setFont(QFont('SansSerif', 10))

        self.pb_select = QPushButton(_("Select"))
        self.pb_select.clicked.connect(self.show_explorer)

        # right part of frame
        header_right = [
            _("Set Name"),
            _("Files"),
            _("New Files"),
            _("Update Files"),
            _("Unchanged Files")
        ]
        self.overview_model = OverviewTableModel(self, header_right, [])
        self.overview = QTableView()
        self.overview.setModel(self.overview_model)
        self.overview.setAlternatingRowColors(True)
        self.overview.setShowGrid(False)

        self.overview.verticalHeader().setDefaultSectionSize(22)

        self.pb_publish = QPushButton(_("Publish"))
        self.pb_publish.clicked.connect(self.pb_publish_clicked)

        self.pb_zip = QPushButton(_("Create Zip"))
        self.pb_zip.clicked.connect(self.pb_zip_clicked)

        self.__init_ui__()
Exemplo n.º 22
0
    def __init__(self):
        super(MainWindow, self).__init__()

        self.currentPath = QDir.homePath()
        self.model = ImageModel(self)

        centralWidget = QWidget()

        self.view = QTableView()
        self.view.setShowGrid(False)
        self.view.horizontalHeader().hide()
        self.view.verticalHeader().hide()
        self.view.horizontalHeader().setMinimumSectionSize(1)
        self.view.verticalHeader().setMinimumSectionSize(1)
        self.view.setModel(self.model)

        delegate = PixelDelegate(self)
        self.view.setItemDelegate(delegate)

        pixelSizeLabel = QLabel("Pixel size:")
        pixelSizeSpinBox = QSpinBox()
        pixelSizeSpinBox.setMinimum(4)
        pixelSizeSpinBox.setMaximum(32)
        pixelSizeSpinBox.setValue(12)

        fileMenu = QMenu("&File", self)
        openAction = fileMenu.addAction("&Open...")
        openAction.setShortcut("Ctrl+O")

        self.printAction = fileMenu.addAction("&Print...")
        self.printAction.setEnabled(False)
        self.printAction.setShortcut("Ctrl+P")

        quitAction = fileMenu.addAction("E&xit")
        quitAction.setShortcut("Ctrl+Q")

        helpMenu = QMenu("&Help", self)
        aboutAction = helpMenu.addAction("&About")

        self.menuBar().addMenu(fileMenu)
        self.menuBar().addSeparator()
        self.menuBar().addMenu(helpMenu)

        openAction.triggered.connect(self.chooseImage)
        self.printAction.triggered.connect(self.printImage)
        quitAction.triggered.connect(QApplication.instance().quit)
        aboutAction.triggered.connect(self.showAboutBox)
        pixelSizeSpinBox.valueChanged.connect(delegate.setPixelSize)
        pixelSizeSpinBox.valueChanged.connect(self.updateView)

        controlsLayout = QHBoxLayout()
        controlsLayout.addWidget(pixelSizeLabel)
        controlsLayout.addWidget(pixelSizeSpinBox)
        controlsLayout.addStretch(1)

        mainLayout = QVBoxLayout()
        mainLayout.addWidget(self.view)
        mainLayout.addLayout(controlsLayout)
        centralWidget.setLayout(mainLayout)

        self.setCentralWidget(centralWidget)

        self.setWindowTitle("Pixelator")
        self.resize(640, 480)
Exemplo n.º 23
0
    def __init__(self):
        super().__init__()
        self.setLayout(QVBoxLayout())
        self.setWindowTitle(i18n("Export Settings"))
        buttons = QDialogButtonBox(QDialogButtonBox.Ok
                                   | QDialogButtonBox.Cancel)

        buttons.accepted.connect(self.accept)
        buttons.rejected.connect(self.reject)
        mainWidget = QTabWidget()
        self.layout().addWidget(mainWidget)
        self.layout().addWidget(buttons)

        # Set basic crop settings
        # Set which layers to remove before export.
        mainExportSettings = QWidget()
        mainExportSettings.setLayout(QVBoxLayout())
        groupExportCrop = QGroupBox(i18n("Crop Settings"))
        formCrop = QFormLayout()
        groupExportCrop.setLayout(formCrop)
        self.chk_toOutmostGuides = QCheckBox(i18n("Crop to outmost guides"))
        self.chk_toOutmostGuides.setChecked(True)
        self.chk_toOutmostGuides.setToolTip(
            i18n(
                "This will crop to the outmost guides if possible and otherwise use the underlying crop settings."
            ))
        formCrop.addRow("", self.chk_toOutmostGuides)
        btn_fromSelection = QPushButton(
            i18n("Set Margins from Active Selection"))
        btn_fromSelection.clicked.connect(self.slot_set_margin_from_selection)
        # This doesn't work.
        formCrop.addRow("", btn_fromSelection)
        self.spn_marginLeft = QSpinBox()
        self.spn_marginLeft.setMaximum(99999)
        self.spn_marginLeft.setSuffix(" px")
        formCrop.addRow(i18n("Left:"), self.spn_marginLeft)
        self.spn_marginTop = QSpinBox()
        self.spn_marginTop.setMaximum(99999)
        self.spn_marginTop.setSuffix(" px")
        formCrop.addRow(i18n("Top:"), self.spn_marginTop)
        self.spn_marginRight = QSpinBox()
        self.spn_marginRight.setMaximum(99999)
        self.spn_marginRight.setSuffix(" px")
        formCrop.addRow(i18n("Right:"), self.spn_marginRight)
        self.spn_marginBottom = QSpinBox()
        self.spn_marginBottom.setMaximum(99999)
        self.spn_marginBottom.setSuffix(" px")
        formCrop.addRow(i18n("Bottom:"), self.spn_marginBottom)
        groupExportLayers = QGroupBox(i18n("Layers"))
        formLayers = QFormLayout()
        groupExportLayers.setLayout(formLayers)
        self.cmbLabelsRemove = labelSelector()
        formLayers.addRow(i18n("Label for removal:"), self.cmbLabelsRemove)
        self.ln_text_layer_name = QLineEdit()
        self.ln_text_layer_name.setToolTip(
            i18n(
                "These are keywords that can be used to identify text layers. A layer only needs to contain the keyword to be recognized. Keywords should be comma separated."
            ))
        self.ln_panel_layer_name = QLineEdit()
        self.ln_panel_layer_name.setToolTip(
            i18n(
                "These are keywords that can be used to identify panel layers. A layer only needs to contain the keyword to be recognized. Keywords should be comma separated."
            ))
        formLayers.addRow(i18n("Text Layer Key:"), self.ln_text_layer_name)
        formLayers.addRow(i18n("Panel Layer Key:"), self.ln_panel_layer_name)

        mainExportSettings.layout().addWidget(groupExportCrop)
        mainExportSettings.layout().addWidget(groupExportLayers)
        mainWidget.addTab(mainExportSettings, i18n("General"))

        # CBZ, crop, resize, which metadata to add.
        CBZexportSettings = QWidget()
        CBZexportSettings.setLayout(QVBoxLayout())
        self.CBZactive = QCheckBox(i18n("Export to CBZ"))
        CBZexportSettings.layout().addWidget(self.CBZactive)
        self.CBZgroupResize = comic_export_resize_widget("CBZ")
        CBZexportSettings.layout().addWidget(self.CBZgroupResize)
        self.CBZactive.clicked.connect(self.CBZgroupResize.setEnabled)
        CBZgroupMeta = QGroupBox(i18n("Metadata to Add"))
        # CBZexportSettings.layout().addWidget(CBZgroupMeta)
        CBZgroupMeta.setLayout(QFormLayout())

        mainWidget.addTab(CBZexportSettings, i18n("CBZ"))

        # ACBF, crop, resize, creator name, version history, panel layer, text layers.
        ACBFExportSettings = QWidget()
        ACBFform = QFormLayout()
        ACBFExportSettings.setLayout(QVBoxLayout())
        ACBFdocInfo = QGroupBox()
        ACBFdocInfo.setTitle(i18n("ACBF Document Info"))
        ACBFdocInfo.setLayout(ACBFform)
        self.lnACBFID = QLabel()
        self.lnACBFID.setToolTip(
            i18n(
                "By default this will be filled with a generated universal unique identifier. The ID by itself is merely so that comic book library management programs can figure out if this particular comic is already in their database and whether it has been rated. Of course, the UUID can be changed into something else by manually changing the JSON, but this is advanced usage."
            ))
        self.spnACBFVersion = QSpinBox()
        self.ACBFhistoryModel = QStandardItemModel()
        acbfHistoryList = QListView()
        acbfHistoryList.setModel(self.ACBFhistoryModel)
        btn_add_history = QPushButton(i18n("Add History Entry"))
        btn_add_history.clicked.connect(self.slot_add_history_item)
        self.chkIncludeTranslatorComments = QCheckBox()
        self.chkIncludeTranslatorComments.setText(
            i18n("Include translator's comments"))
        self.chkIncludeTranslatorComments.setToolTip(
            i18n(
                "A PO file can contain translator's comments. If this is checked, the translations comments will be added as references into the ACBF file."
            ))
        self.lnTranslatorHeader = QLineEdit()

        ACBFform.addRow(i18n("ACBF UID:"), self.lnACBFID)
        ACBFform.addRow(i18n("Version:"), self.spnACBFVersion)
        ACBFform.addRow(i18n("Version history:"), acbfHistoryList)
        ACBFform.addRow("", btn_add_history)
        ACBFform.addRow("", self.chkIncludeTranslatorComments)
        ACBFform.addRow(i18n("Translator header:"), self.lnTranslatorHeader)

        ACBFAuthorInfo = QWidget()
        acbfAVbox = QVBoxLayout(ACBFAuthorInfo)
        infoLabel = QLabel(
            i18n(
                "The people responsible for the generation of the CBZ/ACBF files."
            ))
        infoLabel.setWordWrap(True)
        ACBFAuthorInfo.layout().addWidget(infoLabel)
        self.ACBFauthorModel = QStandardItemModel(0, 6)
        labels = [
            i18n("Nick Name"),
            i18n("Given Name"),
            i18n("Middle Name"),
            i18n("Family Name"),
            i18n("Email"),
            i18n("Homepage")
        ]
        self.ACBFauthorModel.setHorizontalHeaderLabels(labels)
        self.ACBFauthorTable = QTableView()
        acbfAVbox.addWidget(self.ACBFauthorTable)
        self.ACBFauthorTable.setModel(self.ACBFauthorModel)
        self.ACBFauthorTable.verticalHeader().setDragEnabled(True)
        self.ACBFauthorTable.verticalHeader().setDropIndicatorShown(True)
        self.ACBFauthorTable.verticalHeader().setSectionsMovable(True)
        self.ACBFauthorTable.verticalHeader().sectionMoved.connect(
            self.slot_reset_author_row_visual)
        AuthorButtons = QHBoxLayout()
        btn_add_author = QPushButton(i18n("Add Author"))
        btn_add_author.clicked.connect(self.slot_add_author)
        AuthorButtons.addWidget(btn_add_author)
        btn_remove_author = QPushButton(i18n("Remove Author"))
        btn_remove_author.clicked.connect(self.slot_remove_author)
        AuthorButtons.addWidget(btn_remove_author)
        acbfAVbox.addLayout(AuthorButtons)

        ACBFStyle = QWidget()
        ACBFStyle.setLayout(QHBoxLayout())
        self.ACBFStylesModel = QStandardItemModel()
        self.ACBFStyleClass = QListView()
        self.ACBFStyleClass.setModel(self.ACBFStylesModel)
        ACBFStyle.layout().addWidget(self.ACBFStyleClass)
        ACBFStyleEdit = QWidget()
        ACBFStyleEditVB = QVBoxLayout(ACBFStyleEdit)
        self.ACBFuseFont = QCheckBox(i18n("Use font"))
        self.ACBFFontList = QListView()
        self.ACBFFontList.setItemDelegate(font_list_delegate())
        self.ACBFuseFont.toggled.connect(self.font_slot_enable_font_view)
        self.ACBFFontListModel = QStandardItemModel()
        self.ACBFFontListModel.rowsRemoved.connect(
            self.slot_font_current_style)
        self.ACBFFontListModel.itemChanged.connect(
            self.slot_font_current_style)
        self.btnAcbfAddFont = QPushButton()
        self.btnAcbfAddFont.setIcon(Application.icon("list-add"))
        self.btnAcbfAddFont.clicked.connect(self.font_slot_add_font)
        self.btn_acbf_remove_font = QPushButton()
        self.btn_acbf_remove_font.setIcon(Application.icon("edit-delete"))
        self.btn_acbf_remove_font.clicked.connect(self.font_slot_remove_font)
        self.ACBFFontList.setModel(self.ACBFFontListModel)
        self.ACBFdefaultFont = QComboBox()
        self.ACBFdefaultFont.addItems(
            ["sans-serif", "serif", "monospace", "cursive", "fantasy"])
        acbfFontButtons = QHBoxLayout()
        acbfFontButtons.addWidget(self.btnAcbfAddFont)
        acbfFontButtons.addWidget(self.btn_acbf_remove_font)
        self.ACBFBold = QCheckBox(i18n("Bold"))
        self.ACBFItal = QCheckBox(i18n("Italic"))
        self.ACBFStyleClass.clicked.connect(self.slot_set_style)
        self.ACBFStyleClass.selectionModel().selectionChanged.connect(
            self.slot_set_style)
        self.ACBFStylesModel.itemChanged.connect(self.slot_set_style)
        self.ACBFBold.toggled.connect(self.slot_font_current_style)
        self.ACBFItal.toggled.connect(self.slot_font_current_style)
        colorWidget = QGroupBox(self)
        colorWidget.setTitle(i18n("Text Colors"))
        colorWidget.setLayout(QVBoxLayout())
        self.regularColor = QColorDialog()
        self.invertedColor = QColorDialog()
        self.btn_acbfRegColor = QPushButton(i18n("Regular Text"), self)
        self.btn_acbfRegColor.clicked.connect(self.slot_change_regular_color)
        self.btn_acbfInvColor = QPushButton(i18n("Inverted Text"), self)
        self.btn_acbfInvColor.clicked.connect(self.slot_change_inverted_color)
        colorWidget.layout().addWidget(self.btn_acbfRegColor)
        colorWidget.layout().addWidget(self.btn_acbfInvColor)
        ACBFStyleEditVB.addWidget(colorWidget)
        ACBFStyleEditVB.addWidget(self.ACBFuseFont)
        ACBFStyleEditVB.addWidget(self.ACBFFontList)
        ACBFStyleEditVB.addLayout(acbfFontButtons)
        ACBFStyleEditVB.addWidget(self.ACBFdefaultFont)
        ACBFStyleEditVB.addWidget(self.ACBFBold)
        ACBFStyleEditVB.addWidget(self.ACBFItal)
        ACBFStyleEditVB.addStretch()
        ACBFStyle.layout().addWidget(ACBFStyleEdit)

        ACBFTabwidget = QTabWidget()
        ACBFTabwidget.addTab(ACBFdocInfo, i18n("Document Info"))
        ACBFTabwidget.addTab(ACBFAuthorInfo, i18n("Author Info"))
        ACBFTabwidget.addTab(ACBFStyle, i18n("Style Sheet"))
        ACBFExportSettings.layout().addWidget(ACBFTabwidget)
        mainWidget.addTab(ACBFExportSettings, i18n("ACBF"))

        # Epub export, crop, resize, other questions.
        EPUBexportSettings = QWidget()
        EPUBexportSettings.setLayout(QVBoxLayout())
        self.EPUBactive = QCheckBox(i18n("Export to EPUB"))
        EPUBexportSettings.layout().addWidget(self.EPUBactive)
        self.EPUBgroupResize = comic_export_resize_widget("EPUB")
        EPUBexportSettings.layout().addWidget(self.EPUBgroupResize)
        self.EPUBactive.clicked.connect(self.EPUBgroupResize.setEnabled)
        mainWidget.addTab(EPUBexportSettings, i18n("EPUB"))

        # For Print. Crop, no resize.
        TIFFExportSettings = QWidget()
        TIFFExportSettings.setLayout(QVBoxLayout())
        self.TIFFactive = QCheckBox(i18n("Export to TIFF"))
        TIFFExportSettings.layout().addWidget(self.TIFFactive)
        self.TIFFgroupResize = comic_export_resize_widget("TIFF")
        TIFFExportSettings.layout().addWidget(self.TIFFgroupResize)
        self.TIFFactive.clicked.connect(self.TIFFgroupResize.setEnabled)
        mainWidget.addTab(TIFFExportSettings, i18n("TIFF"))
Exemplo n.º 24
0
    def setupRightPanel(self):
        self.ServicesTabWidget = QTabWidget()
        self.ServicesTabWidget.setEnabled(True)
        self.sizePolicy2.setHeightForWidth(
            self.ServicesTabWidget.sizePolicy().hasHeightForWidth())
        self.ServicesTabWidget.setSizePolicy(self.sizePolicy2)
        self.ServicesTabWidget.setObjectName(_fromUtf8("ServicesTabWidget"))
        self.splitter.addWidget(self.ServicesTabWidget)

        ###

        self.splitter_3 = QSplitter()
        self.splitter_3.setOrientation(Qt.Horizontal)
        self.splitter_3.setObjectName(_fromUtf8("splitter_3"))
        self.splitter_3.setSizePolicy(
            self.sizePolicy2
        )  # this makes the tools tab stay the same width when resizing the window

        ###

        self.ToolHostsWidget = QWidget()
        self.ToolHostsWidget.setObjectName(_fromUtf8("ToolHostsTab"))
        self.ToolHostsLayout = QVBoxLayout(self.ToolHostsWidget)
        self.ToolHostsLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.ToolHostsTableView = QTableView(self.ToolHostsWidget)
        self.ToolHostsTableView.setObjectName(_fromUtf8("ServicesTableView"))
        self.ToolHostsLayout.addWidget(self.ToolHostsTableView)
        self.splitter_3.addWidget(self.ToolHostsWidget)

        self.DisplayWidget = QWidget()
        self.DisplayWidget.setObjectName('ToolOutput')
        self.DisplayWidget.setSizePolicy(self.sizePolicy2)
        #self.toolOutputTextView = QTextEdit(self.DisplayWidget)
        self.toolOutputTextView = QPlainTextEdit(self.DisplayWidget)
        self.toolOutputTextView.setReadOnly(True)
        self.DisplayWidgetLayout = QHBoxLayout(self.DisplayWidget)
        self.DisplayWidgetLayout.addWidget(self.toolOutputTextView)
        self.splitter_3.addWidget(self.DisplayWidget)

        self.ScreenshotWidget = ImageViewer()
        self.ScreenshotWidget.setObjectName('Screenshot')
        self.ScreenshotWidget.scrollArea.setSizePolicy(self.sizePolicy2)
        self.ScreenshotWidget.scrollArea.setContextMenuPolicy(
            Qt.CustomContextMenu)
        self.splitter_3.addWidget(self.ScreenshotWidget.scrollArea)

        self.splitter.addWidget(self.splitter_3)

        ###

        self.ServicesRightTab = QWidget()
        self.ServicesRightTab.setObjectName(_fromUtf8("ServicesRightTab"))
        self.verticalLayout = QVBoxLayout(self.ServicesRightTab)
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.ServicesTableView = QTableView(self.ServicesRightTab)
        self.ServicesTableView.setObjectName(_fromUtf8("ServicesTableView"))
        self.verticalLayout.addWidget(self.ServicesTableView)
        self.ServicesTabWidget.addTab(self.ServicesRightTab, _fromUtf8(""))

        self.ScriptsTab = QWidget()
        self.ScriptsTab.setObjectName(_fromUtf8("ScriptsTab"))
        self.horizontalLayout_6 = QHBoxLayout(self.ScriptsTab)
        self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6"))

        self.splitter_4 = QSplitter(self.ScriptsTab)
        self.splitter_4.setOrientation(Qt.Horizontal)
        self.splitter_4.setObjectName(_fromUtf8("splitter_4"))

        self.ScriptsTableView = QTableView()
        self.ScriptsTableView.setObjectName(_fromUtf8("ScriptsTableView"))
        self.splitter_4.addWidget(self.ScriptsTableView)

        self.ScriptsOutputTextEdit = QPlainTextEdit()
        self.ScriptsOutputTextEdit.setObjectName(
            _fromUtf8("ScriptsOutputTextEdit"))
        self.ScriptsOutputTextEdit.setReadOnly(True)
        self.splitter_4.addWidget(self.ScriptsOutputTextEdit)
        self.horizontalLayout_6.addWidget(self.splitter_4)
        self.ServicesTabWidget.addTab(self.ScriptsTab, _fromUtf8(""))

        self.InformationTab = QWidget()
        self.InformationTab.setObjectName(_fromUtf8("InformationTab"))
        self.ServicesTabWidget.addTab(self.InformationTab, _fromUtf8(""))

        self.NotesTab = QWidget()
        self.NotesTab.setObjectName(_fromUtf8("NotesTab"))
        self.horizontalLayout_4 = QHBoxLayout(self.NotesTab)
        self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
        #self.NotesTextEdit = QTextEdit(self.NotesTab)
        self.NotesTextEdit = QPlainTextEdit(self.NotesTab)
        self.NotesTextEdit.setObjectName(_fromUtf8("NotesTextEdit"))
        self.horizontalLayout_4.addWidget(self.NotesTextEdit)
        self.ServicesTabWidget.addTab(self.NotesTab, _fromUtf8(""))
Exemplo n.º 25
0
    def setupLeftPanel(self):
        self.HostsTabWidget = QTabWidget(self.splitter)
        self.sizePolicy.setHeightForWidth(
            self.HostsTabWidget.sizePolicy().hasHeightForWidth())
        self.HostsTabWidget.setSizePolicy(self.sizePolicy)
        self.HostsTabWidget.setObjectName(_fromUtf8("HostsTabWidget"))

        self.HostsTab = QWidget()
        self.HostsTab.setObjectName(_fromUtf8("HostsTab"))
        self.keywordTextInput = QLineEdit()
        self.FilterApplyButton = QToolButton()
        self.searchIcon = QIcon()
        self.searchIcon.addPixmap(QPixmap(_fromUtf8("./images/search.png")),
                                  QIcon.Normal, QIcon.Off)
        self.FilterApplyButton.setIconSize(QSize(29, 21))
        self.FilterApplyButton.setIcon(self.searchIcon)
        self.FilterAdvancedButton = QToolButton()
        self.advancedIcon = QIcon()
        self.advancedIcon.addPixmap(
            QPixmap(_fromUtf8("./images/advanced.png")), QIcon.Normal,
            QIcon.Off)
        self.FilterAdvancedButton.setIconSize(QSize(19, 19))
        self.FilterAdvancedButton.setIcon(self.advancedIcon)
        self.vlayout = QVBoxLayout(self.HostsTab)
        self.vlayout.setObjectName(_fromUtf8("vlayout"))
        self.HostsTableView = QTableView(self.HostsTab)
        self.HostsTableView.setObjectName(_fromUtf8("HostsTableView"))
        self.vlayout.addWidget(self.HostsTableView)

        self.addHostsOverlay = QTextEdit(
            self.HostsTab
        )  # the overlay widget that appears over the hosttableview
        self.addHostsOverlay.setObjectName(_fromUtf8("addHostsOverlay"))
        self.addHostsOverlay.setText('Click here to add host(s) to scope')
        self.addHostsOverlay.setReadOnly(True)
        self.addHostsOverlay.setContextMenuPolicy(Qt.NoContextMenu)

        ###
        self.addHostsOverlay.setFont(QFont('', 12))
        self.addHostsOverlay.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        ###

        self.vlayout.addWidget(self.addHostsOverlay)
        self.hlayout = QHBoxLayout()
        self.hlayout.addWidget(self.keywordTextInput)
        self.hlayout.addWidget(self.FilterApplyButton)
        self.hlayout.addWidget(self.FilterAdvancedButton)
        self.vlayout.addLayout(self.hlayout)
        self.HostsTabWidget.addTab(self.HostsTab, _fromUtf8(""))

        self.ServicesLeftTab = QWidget()
        self.ServicesLeftTab.setObjectName(_fromUtf8("ServicesLeftTab"))
        self.horizontalLayout_2 = QHBoxLayout(self.ServicesLeftTab)
        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
        self.ServiceNamesTableView = QTableView(self.ServicesLeftTab)
        self.ServiceNamesTableView.setObjectName(
            _fromUtf8("ServiceNamesTableView"))
        self.horizontalLayout_2.addWidget(self.ServiceNamesTableView)
        self.HostsTabWidget.addTab(self.ServicesLeftTab, _fromUtf8(""))

        self.ToolsTab = QWidget()
        self.ToolsTab.setObjectName(_fromUtf8("ToolsTab"))
        self.horizontalLayout_3 = QHBoxLayout(self.ToolsTab)
        self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
        self.ToolsTableView = QTableView(self.ToolsTab)
        self.ToolsTableView.setObjectName(_fromUtf8("ToolsTableView"))
        self.horizontalLayout_3.addWidget(self.ToolsTableView)
        self.HostsTabWidget.addTab(self.ToolsTab, _fromUtf8(""))
Exemplo n.º 26
0
def main(icon_spec):
    app = QApplication(sys.argv)

    main_window = QMainWindow()

    def sigint_handler(*args):
        main_window.close()

    signal.signal(signal.SIGINT, sigint_handler)
    # the timer enables triggering the sigint_handler
    signal_timer = QTimer()
    signal_timer.start(100)
    signal_timer.timeout.connect(lambda: None)

    tool_bar = QToolBar()
    main_window.addToolBar(Qt.TopToolBarArea, tool_bar)

    table_view = QTableView()
    table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
    table_view.setSelectionMode(QAbstractItemView.SingleSelection)
    table_view.setSortingEnabled(True)
    main_window.setCentralWidget(table_view)

    proxy_model = QSortFilterProxyModel()
    proxy_model.setFilterCaseSensitivity(Qt.CaseInsensitive)
    proxy_model.setFilterKeyColumn(1)
    table_view.setModel(proxy_model)
    proxy_model.layoutChanged.connect(table_view.resizeRowsToContents)

    item_model = QStandardItemModel()
    proxy_model.setSourceModel(item_model)

    # get all icons and their available sizes
    icons = []
    all_sizes = set([])
    QIcon.setThemeName('Tango')
    for context, icon_names in icon_spec:
        for icon_name in icon_names:
            icon = QIcon.fromTheme(icon_name)
            sizes = []
            for size in icon.availableSizes():
                size = (size.width(), size.height())
                sizes.append(size)
                all_sizes.add(size)
            sizes.sort()
            icons.append({
                'context': context,
                'icon_name': icon_name,
                'icon': icon,
                'sizes': sizes,
            })
    all_sizes = list(all_sizes)
    all_sizes.sort()

    # input field for filter
    def filter_changed(value):
        proxy_model.setFilterRegExp(value)
        table_view.resizeRowsToContents()

    filter_line_edit = QLineEdit()
    filter_line_edit.setMaximumWidth(200)
    filter_line_edit.setPlaceholderText('Filter name')
    filter_line_edit.setToolTip(
        'Filter name optionally using regular expressions (' +
        QKeySequence(QKeySequence.Find).toString() + ')')
    filter_line_edit.textChanged.connect(filter_changed)
    tool_bar.addWidget(filter_line_edit)

    # actions to toggle visibility of available sizes/columns
    def action_toggled(index):
        column = 2 + index
        table_view.setColumnHidden(column,
                                   not table_view.isColumnHidden(column))
        table_view.resizeColumnsToContents()
        table_view.resizeRowsToContents()

    signal_mapper = QSignalMapper()
    for i, size in enumerate(all_sizes):
        action = QAction('%dx%d' % size, tool_bar)
        action.setCheckable(True)
        action.setChecked(True)
        tool_bar.addAction(action)
        action.toggled.connect(signal_mapper.map)
        signal_mapper.setMapping(action, i)
        # set tool tip and handle key sequence
        tool_tip = 'Toggle visibility of column'
        if i < 10:
            digit = ('%d' % (i + 1))[-1]
            tool_tip += ' (%s)' % QKeySequence('Ctrl+%s' % digit).toString()
        action.setToolTip(tool_tip)
    signal_mapper.mapped.connect(action_toggled)

    # label columns
    header_labels = ['context', 'name']
    for width, height in all_sizes:
        header_labels.append('%dx%d' % (width, height))
    item_model.setColumnCount(len(header_labels))
    item_model.setHorizontalHeaderLabels(header_labels)

    # fill rows
    item_model.setRowCount(len(icons))
    for row, icon_data in enumerate(icons):
        # context
        item = QStandardItem(icon_data['context'])
        item.setFlags(item.flags() ^ Qt.ItemIsEditable)
        item_model.setItem(row, 0, item)
        # icon name
        item = QStandardItem(icon_data['icon_name'])
        item.setFlags(item.flags() ^ Qt.ItemIsEditable)
        item_model.setItem(row, 1, item)
        for index_in_all_sizes, size in enumerate(all_sizes):
            column = 2 + index_in_all_sizes
            if size in icon_data['sizes']:
                # icon as pixmap to keep specific size
                item = QStandardItem('')
                pixmap = icon_data['icon'].pixmap(size[0], size[1])
                item.setData(pixmap, Qt.DecorationRole)
                item.setFlags(item.flags() ^ Qt.ItemIsEditable)
                item_model.setItem(row, column, item)
            else:
                # single space to be sortable against icons
                item = QStandardItem(' ')
                item.setFlags(item.flags() ^ Qt.ItemIsEditable)
                item_model.setItem(row, column, item)

    table_view.resizeColumnsToContents()
    # manually set row heights because resizeRowsToContents is not working properly
    for row, icon_data in enumerate(icons):
        if len(icon_data['sizes']) > 0:
            max_size = icon_data['sizes'][-1]
            table_view.setRowHeight(row, max_size[1])

    # enable focus find (ctrl+f) and toggle columns (ctrl+NUM)
    def main_window_keyPressEvent(self,
                                  event,
                                  old_keyPressEvent=QMainWindow.keyPressEvent):
        if event.matches(QKeySequence.Find):
            filter_line_edit.setFocus()
            return
        if event.modifiers() == Qt.ControlModifier and event.key(
        ) >= Qt.Key_0 and event.key() <= Qt.Key_9:
            index = event.key() - Qt.Key_1
            if event.key() == Qt.Key_0:
                index += 10
            action = signal_mapper.mapping(index)
            if action:
                action.toggle()
                return
        old_keyPressEvent(self, event)

    main_window.keyPressEvent = MethodType(main_window_keyPressEvent,
                                           table_view)

    # enable copy (ctrl+c) name of icon to clipboard
    def table_view_keyPressEvent(self,
                                 event,
                                 old_keyPressEvent=QTableView.keyPressEvent):
        if event.matches(QKeySequence.Copy):
            selection_model = self.selectionModel()
            if selection_model.hasSelection():
                index = selection_model.selectedRows()[0]
                source_index = self.model().mapToSource(index)
                item = self.model().sourceModel().item(source_index.row(), 1)
                icon_name = item.data(Qt.EditRole)
                app.clipboard().setText(icon_name.toString())
                return
        old_keyPressEvent(self, event)

    table_view.keyPressEvent = MethodType(table_view_keyPressEvent, table_view)

    main_window.showMaximized()
    return app.exec_()
Exemplo n.º 27
0
    def create_wallet_mn_tab(self):
        w = QWidget()
        hw = QWidget()

        self.w_label = QLabel(self.wallet_label())
        self.w_add_btn = QPushButton(_('Add / Import'))
        self.w_file_btn = QPushButton(_('File'))
        self.w_del_btn = QPushButton(_('Remove'))
        self.w_up_params_btn = QPushButton(_('Update Params'))
        self.w_up_coll_btn = QPushButton(_('Change Collateral'))
        self.w_protx_btn = QPushButton(_('Register'))
        self.w_up_srv_btn = QPushButton(_('Update Service'))
        self.w_up_reg_btn = QPushButton(_('Update Registrar'))
        self.w_add_btn.clicked.connect(self.on_add_masternode)
        self.w_file_btn.clicked.connect(self.on_file)
        self.w_del_btn.clicked.connect(self.on_del_masternode)
        self.w_up_params_btn.clicked.connect(self.on_update_params)
        self.w_up_coll_btn.clicked.connect(self.on_update_collateral)
        self.w_protx_btn.clicked.connect(self.on_make_pro_reg_tx)
        self.w_up_srv_btn.clicked.connect(self.on_make_pro_up_srv_tx)
        self.w_up_reg_btn.clicked.connect(self.on_make_pro_up_reg_tx)

        self.w_view = QTableView()
        self.w_view.setContextMenuPolicy(Qt.CustomContextMenu)
        self.w_view.customContextMenuRequested.connect(self.create_wallet_menu)
        self.w_hheader = QHeaderView(Qt.Horizontal, self.w_view)
        self.w_hheader.setSectionResizeMode(QHeaderView.ResizeToContents)
        self.w_hheader.setStretchLastSection(True)

        self.w_view.setHorizontalHeader(self.w_hheader)
        self.w_view.verticalHeader().hide()
        self.w_view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.w_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.w_view.doubleClicked.connect(self.w_mn_dbl_clicked)

        row_h = self.w_view.verticalHeader().defaultSectionSize()
        self.w_hheader.setMinimumSectionSize(row_h)
        src_model = WalletMNsModel(self.manager, self.mn_list, self.gui, row_h)
        src_model.dataChanged.connect(self.w_data_changed)
        self.w_model = Dip3FilterProxyModel()
        self.w_model.setSourceModel(src_model)
        self.w_view.setModel(self.w_model)

        sel_model = self.w_view.selectionModel()
        sel_model.selectionChanged.connect(self.on_wallet_selection_changed)
        self.w_model.modelReset.connect(self.on_wallet_model_reset)

        hbox = QHBoxLayout()
        vbox = QVBoxLayout()
        hbox.setContentsMargins(0, 0, 0, 0)
        hbox.addWidget(self.w_label)
        hbox.addStretch(1)
        hbox.addWidget(self.w_del_btn)
        hbox.addWidget(self.w_up_params_btn)
        hbox.addWidget(self.w_up_coll_btn)
        hbox.addWidget(self.w_protx_btn)
        hbox.addWidget(self.w_up_reg_btn)
        hbox.addWidget(self.w_up_srv_btn)
        hbox.addWidget(self.w_file_btn)
        hbox.addWidget(self.w_add_btn)
        hw.setLayout(hbox)
        vbox.addWidget(hw)
        vbox.addWidget(self.w_view)
        w.setLayout(vbox)
        self.addTab(w, read_QIcon('tab_dip3.png'), _('Wallet MNs'))
        if not self.mn_list.protx_loading:
            self.w_model.reload_data()
        return w
Exemplo n.º 28
0
    def init_dtc(self):

        self.tabs.currentChanged.connect(self.fill_dm01_table)

        logger.debug("Setting up J1939 DTC User Interface Tab.")
        self.j1939_dtc_tab = QWidget()
        self.tabs.addTab(self.j1939_dtc_tab, "J1939 Diagnostic Codes")
        tab_layout = QGridLayout()

        #Set up the Table Model/View/Proxy for SPNs
        dm01_box = QGroupBox("J1939 Active Diagnostic Trouble Codes (DM1)")
        self.dm01_table = QTableView()
        self.dm01_data_model = J1939TableModel()
        self.dm01_table_proxy = Proxy()
        self.dm01_data_model.setDataDict(self.active_trouble_codes)
        self.dm01_table_columns = [
            "SA", "Source", "SPN", "Suspect Parameter Number Label", "FMI",
            "FMI Meaning", "FMI Severity", "Count", "Raw Hexadecimal"
        ]
        self.dm01_data_model.setDataHeader(self.dm01_table_columns)
        self.dm01_table_proxy.setSourceModel(self.dm01_data_model)
        self.dm01_table.setModel(self.dm01_table_proxy)
        self.dm01_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.dm01_table.setSortingEnabled(True)

        #Create a layout for that box using the vertical
        dm01_box_layout = QGridLayout()
        dm01_box_layout.addWidget(self.dm01_table, 0, 0, 1, 1)
        dm01_box.setLayout(dm01_box_layout)

        #Set up the Table Model/View/Proxy for SPNs
        dm02_box = QGroupBox(
            "J1939 Previously Active Diagnostic Trouble Codes (DM2)")
        self.dm02_table = QTableView()
        self.dm02_data_model = J1939TableModel()
        self.dm02_table_proxy = Proxy()
        self.dm02_data_model.setDataDict(self.previous_trouble_codes)
        self.dm02_table_columns = [
            "SA", "Source", "SPN", "Suspect Parameter Number Label", "FMI",
            "FMI Meaning", "FMI Severity", "Count", "Raw Hexadecimal"
        ]
        self.dm02_data_model.setDataHeader(self.dm02_table_columns)
        self.dm02_table_proxy.setSourceModel(self.dm02_data_model)
        self.dm02_table.setModel(self.dm02_table_proxy)
        self.dm02_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.dm02_table.setSortingEnabled(True)

        self.dm02_request_button = QPushButton(
            "Request Previously Active DTCs (DM2)")
        self.dm02_request_button.setToolTip(
            "Send a J1939 Request Message for the DM02 message (PGN 65227).")
        self.dm02_request_button.clicked.connect(self.request_dm02)

        #Create a layout for that box using the vertical
        dm02_box_layout = QGridLayout()
        dm02_box_layout.addWidget(self.dm02_table, 0, 0, 1, 2)
        dm02_box_layout.addWidget(self.dm02_request_button, 1, 0, 1, 1)
        dm02_box.setLayout(dm02_box_layout)

        self.j1939_dm4_tab = QWidget()
        self.tabs.addTab(self.j1939_dm4_tab, "J1939 Freeze Frames")
        dm4_layout = QGridLayout()
        #Set up the Table Model/View/Proxy for SPNs
        dm04_box = QGroupBox("J1939 Freeze Frame Parameters (DM4)")
        self.dm04_table = QTableView()
        self.dm04_data_model = J1939TableModel()
        self.dm04_table_proxy = Proxy()
        self.dm04_data_model.setDataDict(self.freeze_frame)
        self.dm04_table_columns = [
            "SA", "Source", "SPN", "Suspect Parameter Number Label", "FMI",
            "FMI Meaning", "FMI Severity", "Count", "Freeze Frame Data",
            "Raw Hexadecimal"
        ]
        self.dm04_data_model.setDataHeader(self.dm04_table_columns)
        self.dm04_table_proxy.setSourceModel(self.dm04_data_model)
        self.dm04_table.setModel(self.dm04_table_proxy)
        self.dm04_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.dm04_table.setSortingEnabled(True)
        self.dm04_request_button = QPushButton(
            "Request Freeze Frame Parameters")
        self.dm04_request_button.setToolTip(
            "Send a J1939 Request Message for the DM04 message (PGN 65229).")
        self.dm04_request_button.clicked.connect(self.request_dm04)

        #Create a layout for that box using the vertical
        dm04_box_layout = QGridLayout()
        dm04_box_layout.addWidget(self.dm04_table, 0, 0, 1, 2)
        dm04_box_layout.addWidget(self.dm04_request_button, 1, 0, 1, 1)
        dm04_box.setLayout(dm04_box_layout)

        #setup the layout to be displayed in the box
        tab_layout.addWidget(dm01_box, 0, 0, 1, 1)
        tab_layout.addWidget(dm02_box, 1, 0, 1, 1)
        dm4_layout.addWidget(dm04_box, 0, 0, 1, 1)

        self.j1939_dtc_tab.setLayout(tab_layout)
        self.j1939_dm4_tab.setLayout(dm4_layout)
Exemplo n.º 29
0
    def checkData(self):
        if self._languages and self._languages[0]:
            return True
        return False


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

    language_data = [['C', 'Python', 'Rust', 'Perl'],
                     ['C++', 'Ruby', 'Javascript', 'Swift'],
                     ['Java', 'Haskel', 'PHP', 'Kotlin'],
                     ['C#', 'Go', 'Lisp', 'Objective-C']]
    headers = ['System lang', 'Scripting lang', 'Popular lang', 'Android lang']

    language_model = LanguagesTableModel(language_data, headers)

    app_window = AppWindow(model=language_model)

    table_widget = QTableView()
    app_window.addWidget(table_widget, set_model=True)

    app_window.insertModelRows(4, 3)
    app_window.removeModelRows(4, 2)
    app_window.insertModelColumns(0, 5)
    app_window.removeModelColumns(1, 4)

    app_window.show()

    sys.exit(app.exec_())
Exemplo n.º 30
0
 def __init__(self, parent=None):
     """Initialize ResultTable with basic layout."""
     super(ResultTable, self).__init__(parent)
     self.view = QTableView()
     self.view.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel)