I have tried the integrate button
edit
into thecolumn "A1"
(similar like here) but unfortunately without success so far.I would like to add
edit button
into every row incolumn "A1"
and don't be able to edit the rows as long as the edit button is not pressed.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_())