Вот функция в котором создается динамически окно QTableWidget:
C++ (Qt)
void lgot_rech::on_lpu_button_clicked()
{
QString str,str_all;
QStringList st;
int row = 0;
QFile file("d:\\BioMedPrice.sst");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() <<"File is not open";
}
QFont hor_header_font("Times",12,75,false),item_font ("Times",10,50,false);
QTableWidget *table = new QTableWidget;
table->setFixedSize(600,700);
table->setColumnCount(4);
table->setHorizontalHeaderItem(0, new QTableWidgetItem("Наименование"));
table->setHorizontalHeaderItem(1, new QTableWidgetItem("СрокДо"));
table->setHorizontalHeaderItem(2, new QTableWidgetItem("Цена"));
table->setHorizontalHeaderItem(3, new QTableWidgetItem("Кол-во"));
table->verticalHeader()->setVisible(false);
table->setEditTriggers(false);
table->setSelectionMode(QAbstractItemView::SingleSelection);
table->setSelectionBehavior(QAbstractItemView::SelectRows);
table->horizontalHeaderItem(0)->setFont(hor_header_font);
table->horizontalHeaderItem(1)->setFont(hor_header_font);
table->horizontalHeaderItem(2)->setFont(hor_header_font);
table->horizontalHeaderItem(3)->setFont(hor_header_font);
table->setFont(item_font);
table->setWordWrap(true);
table->setColumnWidth(0,340);
table->setColumnWidth(1,90);
table->setColumnWidth(2,80);
table->setColumnWidth(3,70);
table->show();
table->installEventFilter(table);
table->setWindowTitle(tr("Справочник ЛПУ"));
while (!file.atEnd())
{
str = file.readLine().trimmed();
st = str.split(";");
table->insertRow(row);
table->setItem(row,0, new QTableWidgetItem(st.value(1)));
table->setItem(row,1, new QTableWidgetItem("-"));
table->setItem(row,2, new QTableWidgetItem(st.value(5)));
table->setItem(row,3, new QTableWidgetItem(st.value(4)));
row++;
}
file.close();
connect(table, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), this, SLOT(on_clicked(QTableWidgetItem *)));
connect(table, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), table, SLOT(close()));
В него, пока из файла, потом из базы, загружаются данные, как видно из кода идет передача данных в другую функцию on_clicked(QTableWidgetItem *) :
C++ (Qt)
void lgot_rech::on_clicked(QTableWidgetItem *item)
{
ui->lpu_sprav->setText(item->text().trimmed());
}
Надо, что бы в окне которое создается в предыдущей функции при нажатии на Enter, срабатывала функция:
void lgot_rech::on_clicked(QTableWidgetItem *item)
Она работает пока только при двойном клике мышью!
Пользуемся тегом code