Вы можете выбрать Client_table
, когда выполняете INSERT
, чтобы получить идентификатор клиента. Вам также следует использовать подготовленный оператор для предотвращения внедрения SQL.
$ins_query= "INSERT INTO Order_table (Client_name, Client_id)
SELECT Client_name, Client_id
FROM Client_table
WHERE Client_name = ?";
$ins_stmt = $con->prepare($ins_query) or die($con->error);
$ins_stmt->bind_param("s", $Client_name);
$ins_stmt->execute() or die($ins_stmt->error);
QTableWidget наследовал 19 общедоступных слотов от QWidget. Один из тех является setDisabled (), который должен отключить входные события для того виджета и всех его детей.
Я попробовал бы:
table.setDisabled( true );
table.setDisabled( false );
Хотя Вы сказали, что это не работает на Вас, существует альтернативный метод: Если Вам не нравится это (таблица теряет фокус, я верю), можно попытаться использовать EditTriggers. Например:
table.setEditTriggers( QAbstractItemView::NoEditTriggers );
Вы можете использовать QTableWidget.closePersistentEditor () для закрытия редактора. Однако QAbstractItemView.closeEditor () может быть ближе к тому, что Вы хотите, тем более, что Вы, кажется, довольны находящимся в QModelIndex API и уже используете пользовательский виджет редактора.