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 + -
显示快捷键?