Twain测试工具增加设置界面,选择测试项自动会匹配测试类型

This commit is contained in:
yangjiaxuan 2024-02-22 17:49:56 +08:00
parent 3e0b144bb2
commit 3f4aaa7c78
6 changed files with 537 additions and 157 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,6 @@ MainWindow::MainWindow(QWidget *parent)
, m_cacheUuid("") , m_cacheUuid("")
{ {
ui->setupUi(this); ui->setupUi(this);
this->setWindowIcon(QIcon(":images/image_rsc/logo/logo.ico"));
HGChar cacheUuid[256] = { 0 }; HGChar cacheUuid[256] = { 0 };
HGBase_GetUuid(cacheUuid, 256); HGBase_GetUuid(cacheUuid, 256);
@ -26,12 +25,10 @@ MainWindow::MainWindow(QWidget *parent)
initCapbility(); initCapbility();
QStringList capTypes = { "TWTY_INT8", "TWTY_UINT8", "TWTY_INT16", "TWTY_UINT16", "TWTY_INT32", "TWTY_UINT32", "TWTY_BOOL","TWTY_FIX32", QStringList capTypes = { "TWTY_INT8", "TWTY_UINT8", "TWTY_INT16", "TWTY_UINT16", "TWTY_INT32", "TWTY_UINT32", "TWTY_BOOL","TWTY_FIX32",
"TWTY_STR32", "TWTY_STR64", "TWTY_STR128", "TWTY_STR255" }; "TWTY_STR32", "TWTY_STR64", "TWTY_STR128", "TWTY_STR255", "UNSUPPORTED" };
ui->comboBox_capType->addItems(capTypes); ui->comboBox_capType->addItems(capTypes);
ui->comboBox_capType->setCurrentIndex(0); ui->comboBox_capType->setCurrentIndex(0);
ui->comboBox_capType->setEditable(true);
ui->comboBox_setCap->setEditable(true);
ui->label_deviceStatus->setText(tr("No device connected")); ui->label_deviceStatus->setText(tr("No device connected"));
HGTwain_CreateDSM((HWND)this->winId(), &m_twainDSM); HGTwain_CreateDSM((HWND)this->winId(), &m_twainDSM);
@ -97,6 +94,12 @@ void MainWindow::on_act_selectDevice_triggered()
void MainWindow::on_pushButton_setCap_clicked() void MainWindow::on_pushButton_setCap_clicked()
{ {
if (ui->lineEdit_setCapContent->text().isEmpty())
{
QMessageBox::information(this, tr("Prompt"), tr("Input cannot be empty!"));
return;
}
QString capCode = ui->comboBox_setCap->currentText(); QString capCode = ui->comboBox_setCap->currentText();
bool ok = false; bool ok = false;
HGUShort cap = capCode.left(6).toInt(&ok, 16); HGUShort cap = capCode.left(6).toInt(&ok, 16);
@ -178,11 +181,127 @@ void MainWindow::on_pushButton_getCap_clicked()
} }
} }
void MainWindow::on_pushButton_showUI_clicked()
{
HGTwain_EnableDSUIOnly(m_twainDS, (HWND)this->winId(), DSEventFunc, this);
}
void MainWindow::on_pushButton_scan_clicked() void MainWindow::on_pushButton_scan_clicked()
{ {
HGTwain_EnableDS(m_twainDS, HGFALSE, (HWND)this->winId(), DSEventFunc, this, DSImageFunc, this); HGTwain_EnableDS(m_twainDS, HGFALSE, (HWND)this->winId(), DSEventFunc, this, DSImageFunc, this);
} }
void MainWindow::on_comboBox_setCap_currentTextChanged(const QString &arg1)
{
bool ok = false;
HGUShort cap = arg1.left(6).toInt(&ok, 16);
HGCapValue value;
HGResult ret = HGTwain_GetCapbility(m_twainDS, cap, &value);
if (ret != HGBASE_ERR_OK)
{
return;
}
if (value.type == HGCAPVALUE_TYPE_CHAR)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_INT8")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_BYTE)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_UINT8")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_SHORT)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_INT16")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_USHORT)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_UINT16")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_INT)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_INT32")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_UINT)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_UINT32")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_BOOL)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_BOOL")
ui->comboBox_capType->setCurrentIndex(i);
} }
else if (value.type == HGCAPVALUE_TYPE_FLOAT)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_FIX32")
ui->comboBox_capType->setCurrentIndex(i);
}
}
else if (value.type == HGCAPVALUE_TYPE_STR32)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_STR32")
ui->comboBox_capType->setCurrentIndex(i);
}
}
else if (value.type == HGCAPVALUE_TYPE_STR64)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_STR64")
ui->comboBox_capType->setCurrentIndex(i);
}
}
else if (value.type == HGCAPVALUE_TYPE_STR128)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_STR128")
ui->comboBox_capType->setCurrentIndex(i);
}
}
else if (value.type == HGCAPVALUE_TYPE_STR255)
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "TWTY_STR255")
ui->comboBox_capType->setCurrentIndex(i);
}
}
else
{
for (int i = 0; i < ui->comboBox_capType->count(); i++)
{
if (ui->comboBox_capType->itemText(i) == "UNSOPPORTED")
ui->comboBox_capType->setCurrentIndex(i);
}
}
}
void MainWindow::on_newImage(void *image) void MainWindow::on_newImage(void *image)
{ {
HGImage img = nullptr; HGImage img = nullptr;
@ -498,6 +617,7 @@ void MainWindow::updateUiEnable(bool enable)
ui->pushButton_setCap->setEnabled(enable); ui->pushButton_setCap->setEnabled(enable);
ui->pushButton_getCap->setEnabled(enable); ui->pushButton_getCap->setEnabled(enable);
ui->pushButton_scan->setEnabled(enable); ui->pushButton_scan->setEnabled(enable);
ui->pushButton_showUI->setEnabled(enable);
} }
QString MainWindow::getDeviceName() QString MainWindow::getDeviceName()

View File

@ -24,8 +24,12 @@ private slots:
void on_pushButton_getCap_clicked(); void on_pushButton_getCap_clicked();
void on_pushButton_showUI_clicked();
void on_pushButton_scan_clicked(); void on_pushButton_scan_clicked();
void on_comboBox_setCap_currentTextChanged(const QString &arg1);
signals: signals:
void newImage(void *image); void newImage(void *image);
void clearRes(); void clearRes();

View File

@ -171,6 +171,19 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_showUI">
<property name="geometry">
<rect>
<x>160</x>
<y>400</y>
<width>101</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>ShowUI</string>
</property>
</widget>
</widget> </widget>
<widget class="QMenuBar" name="menubar"> <widget class="QMenuBar" name="menubar">
<property name="geometry"> <property name="geometry">

View File

@ -21,6 +21,8 @@ DEFINES += QT_NO_VERSION_TAGGING
include($$PWD/../HGOEM.pri) include($$PWD/../HGOEM.pri)
RC_ICONS = ../../../app/twaintest/image_rsc/logo/logo.ico
CONFIG(debug, debug|release) { CONFIG(debug, debug|release) {
MY_CONFIGURE = Debug MY_CONFIGURE = Debug
} }