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