Здравствуйте! Подскажите пожалуйста, как сделать, чтобы в таблице одна из ячеек содержала выпадающий список(типа Combobox). Спасибо за ответ.
from PyQt4 import QtCore, QtGui
class SoilWindow(QtGui.QWidget):
def __init__ (self, parent = None):
super(SoilWindow, self).__init__(parent)
self.vbox1 = QtGui.QVBoxLayout()
self.setLayout(self.vbox1)
self.columns_names = [
u'Обозначение', u'Тип грунта', u'Вид грунта',u'Плотность',
u'I_L',u'I_p',u'c_I',u'c_II',u'phi_I',u'phi_II',u'E',u'Ee'
]
self.model = QtGui.QStandardItemModel(1,len(self.columns_names))
self.model.setHorizontalHeaderLabels(self.columns_names)
self.soil_table = QtGui.QTableView()
self.soil_table.setModel(self.model)
self.vbox1.addWidget(self.soil_table)
self.hbox1 = QtGui.QHBoxLayout()
self.setLayout(self.hbox1)
self.vbox1.addLayout(self.hbox1)
self.btn_add_row = QtGui.QPushButton(u'Добавить строку')
self.hbox1.addStretch(0)
self.hbox1.addWidget(self.btn_add_row)
self.connect(self.btn_add_row,QtCore.SIGNAL('clicked()'),self.add_row)
self.btn_rmv_row = QtGui.QPushButton(u'Удалить строку')
self.hbox1.addWidget(self.btn_rmv_row)
self.connect(self.btn_rmv_row,QtCore.SIGNAL('clicked()'),self.remove_row)
def resizeColumns(self):
for column in self.columns_names:
self.soil_table.resizeColumnToContents(column)
def make_widgets(self):
pass
def add_row(self):
self.new_row = QtGui.QStandardItem()
self.model.appendRow(self.new_row)
def remove_row(self):
index = self.soil_table.currentIndex()
row = index.row()
self.model.removeRows(row,1)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = SoilWindow()
window.setWindowTitle(u'Задание характеристик грунтов')
window.show()
sys.exit(app.exec_())