怎样用qt制作一个ui界面,输入学生姓名,并在数据库中查询后输出到ui界面中
时间: 2024-03-22 12:41:38 浏览: 56
Qt Designer,仿作一个ui界面的练习(四):编写代码文章的资源
首先,在Qt Creator中创建一个新的Qt Widgets应用程序。在主窗口中添加一个QLineEdit控件和一个QPushButton控件,用于输入学生姓名和触发查询操作。
然后,在项目中添加相应的数据库驱动程序(例如:QMYSQL驱动程序),并创建一个数据库连接。在按钮的clicked()信号中,获取输入的学生姓名,使用QSqlQuery类执行查询操作,并将查询结果显示在QLineEdit控件中。
以下是一个简单的代码示例:
```
#include <QtWidgets>
#include <QtSql>
class MainWindow : public QWidget
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QWidget(parent)
{
//创建数据库连接
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("testdb");
db.setUserName("root");
db.setPassword("password");
//创建控件
nameLineEdit = new QLineEdit(this);
searchButton = new QPushButton("Search", this);
//布局控件
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(nameLineEdit);
layout->addWidget(searchButton);
//连接信号和槽
connect(searchButton, &QPushButton::clicked, this, &MainWindow::search);
}
private slots:
void search()
{
//获取输入的学生姓名
QString name = nameLineEdit->text();
//执行查询操作
QSqlQuery query;
query.prepare("SELECT * FROM students WHERE name = ?");
query.addBindValue(name);
query.exec();
//将查询结果显示在QLineEdit控件中
if(query.next())
{
QString id = query.value(0).toString();
QString score = query.value(1).toString();
nameLineEdit->setText("ID: " + id + ", Score: " + score);
}
else
{
nameLineEdit->setText("No record found.");
}
}
private:
QSqlDatabase db;
QLineEdit *nameLineEdit;
QPushButton *searchButton;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
注意:在使用Qt连接数据库时,需要在项目文件中添加相应的库文件(例如:libmysql.dll等)。
阅读全文