0

QtGUIでラジオボタンを選択してデータベースの行の値を表示したいと思います。これはどのように達成できますか?これは、私が推測するforeachループを使用して行うことができます。私は次のクラスについて少し勉強しました:

1)QMainWindow 2)QSqlTableModel 3)QTableWidget。

しかし、どれが私の要件を満たしていますか?実装できませんので、ご案内ください。前もって感謝します。

私はこれまで私のソースファイルに実装しました-

main.cpp

#include <QtGui/QApplication>
#include <QtSql>
#include <QTableWidget>
#include <QMessageBox>
#include "mainwindow.h"
#include <QRadioButton>
#include <QVBoxLayout>
#include <QGroupBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTableWidget* table = new QTableWidget();
    table->setWindowTitle("Connect to Mysql Database Example");

        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("localhost");
        db.setDatabaseName("guests");
        db.setUserName("sri");
        db.setPassword("******");
        if (!db.open())
        {
          QMessageBox::critical(0, QObject::tr("Database Error"),
          db.lastError().text());
        }

        QSqlQuery query("SELECT * FROM new_members");

        table->setColumnCount(query.record().count());
        table->setRowCount(query.size());

        int index=0;
        while (query.next())
        {

            table->setItem(index,0,new QTableWidgetItem(query.value(0).toString()));
            table->setItem(index,1,new QTableWidgetItem(query.value(1).toString()));

            index++;

        }

// This is sample radiobutton from QGroupBox class. Like this I need to implement the values from DB in with radio button selections for each value

        QMainWindow *window = new QMainWindow();
        window->setWindowTitle(QString::fromUtf8("QGroupBox"));
        window->resize(400, 400);
        QGroupBox *groupBox = new QGroupBox("Radio Buttons");
        QRadioButton *radio1 = new QRadioButton("Radio button 1");
        radio1->setChecked(true);
        QVBoxLayout *vbox = new QVBoxLayout;
        vbox->addWidget(radio1);
        groupBox->setLayout(vbox);
        window->setCentralWidget(groupBox);
        window->show();

        table->show();
                                         //MainWindow w; w.show();

        return a.exec();
}
4

1 に答える 1

1

を使用してQSqlTableModelを駆動します。描画するQTableViewためのカスタムが必要になりますQStyledItemDelegate(はい、作成するのではなく、描画すると言いました)。また、エディターウィジェットを作成します(もちろん、実際には)。QRadioButtonQRadioButton

これは非常に大きな仕事なので、必要なビットを再実装するには、上記のクラスのドキュメントを読む必要があります。MVCドキュメントから始めます。

于 2013-02-12T13:24:11.973 に答える