在Qt中使用单选按钮选择显示数据库值?

在Qt中使用单选按钮选择显示数据库值?,qt,qt-creator,Qt,Qt Creator,我想在QtGUI中用单选按钮显示一些数据库行值。如何做到这一点?。我想这可以使用foreach循环来完成。我学习了以下课程: 1个主窗口 2 QSqlTableModel 3 QTableWidget 但哪一个符合我的要求呢?我无法实施,请指导我。提前谢谢 我已经在我的源文件中实现了这一点- main.cpp: 使用QSqlTableModel来驱动QTableView,您将需要一个定制的QStyledItemDelegate来绘制QRadioButton,并创建一个编辑器小部件,当然这将是一个

我想在QtGUI中用单选按钮显示一些数据库行值。如何做到这一点?。我想这可以使用foreach循环来完成。我学习了以下课程:

1个主窗口 2 QSqlTableModel 3 QTableWidget

但哪一个符合我的要求呢?我无法实施,请指导我。提前谢谢

我已经在我的源文件中实现了这一点-

main.cpp:

使用QSqlTableModel来驱动QTableView,您将需要一个定制的QStyledItemDelegate来绘制QRadioButton,并创建一个编辑器小部件,当然这将是一个QRadioButton


这是一项相当大的工作,因此您需要阅读上述类的文档来重新实现所需的位。从开始。

非常感谢您的回答,因为我是Qt新手,请向我解释为完成任务而简化的一步一步的过程…:如果您是Qt新手,那么您需要学习,而且您不会从一个循序渐进的指南中学到任何东西,更不用说您正在做的事情是非常重要的。阅读MVC文档,然后创建一个可以将现有SQL db加载到QSqlTableModel中的程序,当您完成此操作时,您将有一些特定的问题,您可以将这些问题作为新问题发布在此网站上。
#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();
}