cognatewidget.cpp
来自「Qt开发的GRE背单词软件」· C++ 代码 · 共 50 行
CPP
50 行
#include "CognateWidget.h"
#include "Library.h"
#include <QtSql/QSqlQuery>
#include <QHeaderView>
CognateWidget::CognateWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
ui.tableWidget->horizontalHeader()->setStretchLastSection(true);
ui.tableWidget->setRowCount(7);
connect(ui.tableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem*)),
this, SLOT(slotDoubleClicked(QTableWidgetItem*)));
}
void CognateWidget::slotDoubleClicked(QTableWidgetItem* item)
{
const int row = ui.tableWidget->row(item);
QTableWidgetItem* wordItem = ui.tableWidget->item(row, 0);
emit doubleClicked(Library::searchEnglish(dictName, wordItem->text()), true);
}
void CognateWidget::setDictName(const QString& dict) {
dictName = dict;
}
void CognateWidget::setCentralWord(const QString& word, bool showChinese)
{
int id = Library::searchEnglish(dictName, word);
if(id != -1)
{
QSqlQuery query;
query.exec(tr("SELECT 单词, 解释 FROM %1 WHERE 编号 BETWEEN %2 AND %3")
.arg(dictName).arg(id-3).arg(id+3));
ui.tableWidget->clearContents();
int i = 0;
while(query.next())
{
QString english = query.value(0).toString();
QString chinese = showChinese ? query.value(1).toString() : QString();
ui.tableWidget->setItem(i, 0, new QTableWidgetItem(english));
ui.tableWidget->setItem(i, 1, new QTableWidgetItem(chinese));
i ++;
}
ui.tableWidget->sortItems(0);
ui.tableWidget->resizeColumnToContents(0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?