Skip to content

Italian

A forum for those speaking Italian
456 Topics 1.9k Posts
  • 0 Votes
    1 Posts
    388 Views
    No one has replied
  • Repository file lingua e file traduzioni non allineati

    Unsolved
    1
    0 Votes
    1 Posts
    334 Views
    No one has replied
  • Context menu in qwebengineview

    Unsolved
    1
    0 Votes
    1 Posts
    427 Views
    No one has replied
  • 0 Votes
    10 Posts
    681 Views
    B

    @VRonin
    Ho provato l'esempio della libreria sqlwidgetmapper ed ho constatato che avviene la stessa cosa. Per semplicità ti allego i sorgenti ai quali ho aggiunto qualche campo in più per rendere più evidente il problema:

    sqlwidgettmapper.pro

    HEADERS = window.h SOURCES = main.cpp \ window.cpp QT += sql widgets # install target.path = $$[QT_INSTALL_EXAMPLES]/sql/sqlwidgetmapper INSTALLS += target

    window.h

    /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef WINDOW_H #define WINDOW_H #include <QWidget> QT_BEGIN_NAMESPACE class QComboBox; class QDataWidgetMapper; class QItemSelectionModel; class QLabel; class QLineEdit; class QPushButton; class QSqlRelationalTableModel; class QStandardItemModel; class QStringListModel; class QTextEdit; QT_END_NAMESPACE //! [Window definition] class Window : public QWidget { Q_OBJECT public: Window(QWidget *parent = nullptr); private slots: void updateButtons(int row); void saveBtn(void); //^^^ private: void setupModel(); QLabel *nameLabel; QLabel *addressLabel; QLabel *typeLabel; QLineEdit *nameEdit; QTextEdit *addressEdit; QComboBox *typeComboBox; QPushButton *nextButton; QPushButton *previousButton; QPushButton *saveButton; //^^^ QSqlRelationalTableModel *model; QItemSelectionModel *selectionModel; QDataWidgetMapper *mapper; int typeIndex; }; //! [Window definition] #endif

    window.cpp

    /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ //Cerca ^^^ per eliminare le mie modifiche #include <QtWidgets> #include <QtSql> #include "window.h" //! [Set up widgets] Window::Window(QWidget *parent) : QWidget(parent) { setupModel(); nameLabel = new QLabel(tr("Na&me:")); nameEdit = new QLineEdit(); addressLabel = new QLabel(tr("&Address:")); addressEdit = new QTextEdit(); typeLabel = new QLabel(tr("&Type:")); typeComboBox = new QComboBox(); nextButton = new QPushButton(tr("&Next")); previousButton = new QPushButton(tr("&Previous")); saveButton = new QPushButton(tr("Salva")); //^^^ nameLabel->setBuddy(nameEdit); addressLabel->setBuddy(addressEdit); typeLabel->setBuddy(typeComboBox); //! [Set up widgets] //! [Set up the mapper] QSqlTableModel *relModel = model->relationModel(typeIndex); typeComboBox->setModel(relModel); typeComboBox->setModelColumn(relModel->fieldIndex("description")); mapper = new QDataWidgetMapper(this); mapper->setModel(model); mapper->setItemDelegate(new QSqlRelationalDelegate(this)); mapper->addMapping(nameEdit, model->fieldIndex("name")); mapper->addMapping(addressEdit, model->fieldIndex("address")); mapper->addMapping(typeComboBox, typeIndex); //! [Set up the mapper] //! [Set up connections and layouts] connect(previousButton, &QPushButton::clicked, mapper, &QDataWidgetMapper::toPrevious); connect(nextButton, &QPushButton::clicked, mapper, &QDataWidgetMapper::toNext); connect(mapper, &QDataWidgetMapper::currentIndexChanged, this, &Window::updateButtons); connect(saveButton, &QPushButton::clicked, this, &Window::saveBtn); //^^^ QGridLayout *layout = new QGridLayout(); layout->addWidget(nameLabel, 0, 0, 1, 1); layout->addWidget(nameEdit, 0, 1, 1, 1); layout->addWidget(previousButton, 0, 2, 1, 1); layout->addWidget(addressLabel, 1, 0, 1, 1); layout->addWidget(addressEdit, 1, 1, 2, 1); layout->addWidget(nextButton, 1, 2, 1, 1); layout->addWidget(typeLabel, 3, 0, 1, 1); layout->addWidget(typeComboBox, 3, 1, 1, 1); layout->addWidget(saveButton, 2, 2, 1, 1); //^^^ setLayout(layout); setWindowTitle(tr("SQL Widget Mapper")); mapper->toFirst(); } //! [Set up connections and layouts] //! [Set up the main table] void Window::setupModel() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(":memory:"); if (!db.open()) { QMessageBox::critical(0, tr("Cannot open database"), tr("Unable to establish a database connection.\n" "This example needs SQLite support. Please read " "the Qt SQL driver documentation for information how " "to build it."), QMessageBox::Cancel); return; } QSqlQuery query; query.exec("create table person (id int primary key, " "name varchar(20), address varchar(200), typeid int)"); query.exec("insert into person values(1, 'Alice', " "'<qt>123 Main Street<br/>Market Town</qt>', 101)"); query.exec("insert into person values(2, 'Bob', " "'<qt>PO Box 32<br/>Mail Handling Service" "<br/>Service City</qt>', 102)"); query.exec("insert into person values(3, 'Carol', " "'<qt>The Lighthouse<br/>Remote Island</qt>', 103)"); query.exec("insert into person values(4, 'Donald', " "'<qt>47338 Park Avenue<br/>Big City</qt>', 101)"); query.exec("insert into person values(5, 'Emma', " "'<qt>Research Station<br/>Base Camp<br/>" "Big Mountain</qt>', 103)"); //! [Set up the main table] //! [Set up the address type table] query.exec("create table addresstype (id int, description varchar(20))"); query.exec("insert into addresstype values(101, 'Home')"); query.exec("insert into addresstype values(102, 'Work')"); query.exec("insert into addresstype values(103, 'Other')"); //CAMPI AGGIUNTI ------------------------------------------- query.exec("insert into addresstype values(104, 'Casa')"); query.exec("insert into addresstype values(105, 'Lavoro')"); query.exec("insert into addresstype values(106, 'Altro')"); //--------------------------------------------------------- model = new QSqlRelationalTableModel(this); model->setTable("person"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); typeIndex = model->fieldIndex("typeid"); model->setRelation(typeIndex, QSqlRelation("addresstype", "id", "description")); model->select(); } //! [Set up the address type table] //! [Slot for updating the buttons] void Window::updateButtons(int row) { previousButton->setEnabled(row > 0); nextButton->setEnabled(row < model->rowCount() - 1); } //! [Slot for updating the buttons] //^^^ void Window::saveBtn(void) { model->submitAll(); } //^^^

    main.cpp

    /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include <QApplication> #include "window.h" int main(int argc, char **argv) { QApplication app(argc, argv); Window window; window.show(); return app.exec(); }

    Questo è quanto accade:
    sqlwdmp_1.jpeg

    Modifico il type da inglese ad italiano:
    sqlwdmp_2.jpeg
    sqlwdmp_3.jpeg
    Ora premo NEXT per passare al nome successivo:
    sqlwdmp_4.jpeg
    e poi torno indietro con PREVIUS:
    sqlwdmp_5.jpeg
    e la combo NON viene aggiornata al tipo che avevo scelto, ma mantiene quello dell'ultimo nome visualizzato fino a che non salvo nel database con SALVA.

    Ciao
    Giovanni

  • 0 Votes
    3 Posts
    412 Views
    B

    @VRonin Grazie mille e scusa del ritardo, mi sono accorto solo ora della risposta! Davvero semplice, ma non avevo intuito che potessi passare il modello direttamente.

    Giovanni

  • QDialog gestione dei dati

    Unsolved
    4
    0 Votes
    4 Posts
    486 Views
    mrdebugM

    l'approccio è esattamente quello tra 2 classi. Attenzione che MyDialog.exec() apre il dialog in modalità modale

  • This topic is deleted!

    Moved Unsolved
    1
    0 Votes
    1 Posts
    11 Views
    No one has replied
  • 0 Votes
    8 Posts
    573 Views
    F

    Ho quindi RISOLTO il problema

  • Qt Creator rpath-link

    Unsolved
    1
    0 Votes
    1 Posts
    370 Views
    No one has replied
  • Accedere a Qlist da QML

    Unsolved
    5
    0 Votes
    5 Posts
    582 Views
    VRoninV

    La risposta alla tua domanda e' qui https://evileg.com/en/post/569/
    Sopsetto pero' che tu, alla fine sia iteressato a una cosa simile a quella descritta qui: https://wiki.qt.io/How_to_Use_a_Custom_Class_in_C%2B%2B_Model_and_QML_View

  • 0 Votes
    3 Posts
    428 Views
    JonBJ

    @VRonin said in Impostare una colonna di QTableWidget come 'read only' - Python 3:

    è possibile farlo con QDesigner ?

    Non che io sappia

    @Achab61

    Screenshot from 2022-04-08 12-28-57.png

  • Proteggere un software Qt

    Unsolved
    7
    0 Votes
    7 Posts
    759 Views
    mrdebugM

    Mah, non credo che il link dinamico o meno possa rendere un'applicazione più esposta al rishio di reverse engeeniering.
    In base ad esperienze passate ciò che la gente va a cercare negli eseguibili sono eventuali certiticati ssl, password da usare nelle funzionalità di encryption etc, ma non di decompilare un programma. Eventualmente uno se lo rifà.

  • 0 Votes
    1 Posts
    259 Views
    No one has replied
  • QVirtualKeyboard su Raspberry riempie tutta la schermata

    Unsolved
    2
    0 Votes
    2 Posts
    373 Views
    piervalliP

    @Andrea_M,
    Non ho mai usato Qt su Raspberry, penso che la configurazione sia dovuta al qml.
    Il pannello della tastiera si può spostare in base al focus dell'oggetto. attivato in quel momento.
    Questo è un vecchio test che avevo fatto.
    https://github.com/piervalli/Qt-VirtualKeyboard

  • adb server version (40) doesn't match this client (41)

    Unsolved
    2
    0 Votes
    2 Posts
    310 Views
    mrdebugM

    Ciao, nella parte sotto clicca su installed e posta lo screenshot

  • Modificare background color di QPushbutton

    Unsolved
    2
    0 Votes
    2 Posts
    332 Views
    JonBJ

    @Achab61
    https://forum.qt.io/topic/134171/changing-push-button-background-color-does-not-work/2

    @jsulm wrote:

    @Achab61 I suggest you post the style-sheet you set.

  • Esportazione in documento

    Solved
    3
    0 Votes
    3 Posts
    325 Views
    PollyP

    perfetto ti ringrazio

  • Implementare zoom pan da QPoint a QPoint no mouse

    Unsolved
    1
    0 Votes
    1 Posts
    294 Views
    No one has replied
  • Doppio QTDialog

    Solved
    3
    0 Votes
    3 Posts
    362 Views
    M

    Scusate il ritardo. Alla fine ho seguito il suggerimento qui https://forum.qt.io/topic/132713/double-qtdialog e ho usato QStackWidget.
    Grazie mille!!!!

  • Configurazione QT creator per stm32

    Unsolved
    2
    0 Votes
    2 Posts
    309 Views
    mrdebugM

    Usa system workbebch 4 stm32, qtcreator non è adatto. Non è previsto infatti che si integri con cubexm