1
  1. I have tried the integrate button edit into the column "A1" (similar like here) but unfortunately without success so far.

  2. I would like to add edit button into every row in column "A1" and don't be able to edit the rows as long as the edit button is not pressed.

  3. Next Thing what I tried and didn't find the solution that the cell "A2" showed into table layers (cell "B1"), but its content is disabled to edit.


# -*- coding: utf-8 -*-
import sqlite3 as sql
from PyQt4 import QtCore, QtGui
import sys, os

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        # Tabs & QWidget
        self.tabs = QtGui.QTabWidget(self)
        self.general = QtGui.QWidget()
        self.layers = QtGui.QWidget()
        self.tabs.addTab(self.general, "General")
        self.tabs.addTab(self.layers, "Layers")

        cWidget = QtGui.QWidget(self)
        self.setCentralWidget(cWidget)

        # QTableWidget
        self.general_table = QtGui.QTableWidget(self.general)
        self.layers_table = QtGui.QTableWidget(self.layers)


        # Geometry
        self.tabs.setGeometry(0, 0, 1500, 500)
        self.general_table.setGeometry(0,0,1490,500)
        self.layers_table.setGeometry(0,0,1490,500)
        self.setGeometry(100,100,1520,720)
        self.setFixedSize(1520, 720)
        self.setHeader()

        # Set Column Width and resize the conctext automatically

        header = self.general_table.horizontalHeader()
        header.setResizeMode(QtGui.QHeaderView.ResizeToContents)
        header.setStretchLastSection(True)

        header = self.layers_table.horizontalHeader()
        header.setResizeMode(QtGui.QHeaderView.ResizeToContents)
        header.setStretchLastSection(True)


        # PushButton
        add_record = QtGui.QPushButton("Add Record")
        delete_record = QtGui.QPushButton("Delete Record")

        # Layout
        layout = QtGui.QVBoxLayout(cWidget)
        layout.addWidget(self.tabs)
        layout.addWidget(add_record)
        layout.addWidget(delete_record)

        # Connect SIGNAL
        self.connect(add_record, QtCore.SIGNAL('clicked()'), self.addRecord)
        self.connect(delete_record, QtCore.SIGNAL('clicked()'), self.deleteRecord)



    def whatTab(self):
        current_index = self.tabs.currentIndex()
        self.tabs.currentWidget()
        return current_index

    def addRecord(self):
        rcount_general = self.general_table.rowCount()
        self.general_table.insertRow(rcount_general)
        self.layers_table.insertRow(rcount_general)
        self.fullNone(rcount_general)


    def deleteRecord(self):
        self.general_table.removeRow(self.general_table.currentIndex().row())
        self.layers_table.removeRow(self.general_table.currentIndex().row())


    def setHeader(self):
        # General
        self.general_table.setRowCount(1)
        self.general_table.setColumnCount(6)
        self.general_table.setHorizontalHeaderLabels(["A1", "A2", "A3", "A4", 
                                                "A5", "A6)"])

        # Layers                                        
        self.layers_table.setRowCount(1)
        self.layers_table.setColumnCount(8)                                       
        self.layers_table.setHorizontalHeaderLabels(["B1", "B2", "B3", "B4", 
                                                "B5", "B6", "B8", "B9"])

        self.fullNone(0)

    def fullNone(self, row):

        for col in range(0, 6, 1):
            self.general_table.setItem(row, col, QtGui.QTableWidgetItem("None"))

        for col in range(0, 8, 1):
            self.layers_table.setItem(row, col, QtGui.QTableWidgetItem("None"))


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
Community
  • 1
  • 1
stepBystep
  • 187
  • 1
  • 1
  • 8

0 Answers0