编写QT代码
时间: 2023-07-03 12:21:19 浏览: 91
好的,那么假设你已经创建了一个新的窗口,并且添加了一个文本框和一个按钮用于查询操作。下面是一些示例代码,可以帮助您完成这个任务:
1. 在头文件中添加所需的头文件和变量声明
```
#include <QtSql>
#include <QMessageBox>
class MyWindow : public QWidget
{
Q_OBJECT
public:
MyWindow(QWidget *parent = nullptr);
private slots:
void searchClicked();
private:
QLineEdit *queryEdit;
QPushButton *searchButton;
QTableView *resultView;
QSqlQueryModel *model;
};
```
2. 在构造函数中初始化UI控件和数据库连接
```
MyWindow::MyWindow(QWidget *parent)
: QWidget(parent)
{
queryEdit = new QLineEdit(this);
searchButton = new QPushButton("Search", this);
resultView = new QTableView(this);
model = new QSqlQueryModel(this);
QHBoxLayout *queryLayout = new QHBoxLayout;
queryLayout->addWidget(queryEdit);
queryLayout->addWidget(searchButton);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(queryLayout);
mainLayout->addWidget(resultView);
setLayout(mainLayout);
// 初始化数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("dbname");
db.setUserName("user");
db.setPassword("password");
if (!db.open()) {
QMessageBox::critical(this, "Error", "Failed to connect to database!");
}
}
```
3. 实现按钮点击事件和查询逻辑
```
void MyWindow::searchClicked()
{
QString query = queryEdit->text();
if (query.isEmpty()) {
return;
}
QSqlQuery sqlQuery;
sqlQuery.prepare("SELECT * FROM table WHERE name LIKE :query");
sqlQuery.bindValue(":query", "%" + query + "%");
if (!sqlQuery.exec()) {
QMessageBox::critical(this, "Error", sqlQuery.lastError().text());
return;
}
model->setQuery(sqlQuery);
resultView->setModel(model);
}
```
4. 在构造函数中连接按钮的单击事件到查询函数
```
connect(searchButton, SIGNAL(clicked()), this, SLOT(searchClicked()));
```
这只是一个简单的示例,您需要根据实际情况进行更改和调整。希望这可以帮助您开始编写您的Qt代码!
阅读全文