forked from changfeng1050/SerialWizard
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFrameInfoDialog.cpp
More file actions
128 lines (101 loc) · 4.37 KB
/
FrameInfoDialog.cpp
File metadata and controls
128 lines (101 loc) · 4.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//
// Created by chang on 2017-08-02.
//
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QHBoxLayout>
#include "FrameInfoDialog.h"
FrameInfoDialog::FrameInfoDialog(const FrameInfo &info,QWidget *parent, Qt::WindowFlags f)
: QDialog(parent, f),info(info){
createUi();
initUiValue(info);
createConnect();
}
void FrameInfoDialog::createUi() {
setMinimumWidth(800);
auto frameLabel = new QLabel(tr("数据帧样例"), this);
frameLineEdit = new QLineEdit(this);
frameLabel->setBuddy(frameLineEdit);
auto hLayout1 = new QHBoxLayout;
hLayout1->addWidget(frameLabel);
hLayout1->addWidget(frameLineEdit);
auto frameHeadLabel = new QLabel(tr("帧头"), this);
frameHeadLineEdit = new QLineEdit(this);
frameHeadLineEdit->setMaximumWidth(50);
frameHeadLabel->setBuddy(frameHeadLineEdit);
auto frameEndLabel = new QLabel(tr("帧尾"), this);
frameEndLineEdit = new QLineEdit(this);
frameEndLineEdit->setMaximumWidth(50);
frameEndLabel->setBuddy(frameEndLineEdit);
auto hLayout2 = new QHBoxLayout;
hLayout2->addWidget(frameHeadLabel);
hLayout2->addWidget(frameHeadLineEdit);
hLayout2->addWidget(frameEndLabel);
hLayout2->addWidget(frameEndLineEdit);
hLayout2->addStretch();
auto frameLenIndexLabel = new QLabel(tr("帧长度标识索引"), this);
frameLenIndexLineEdit = new QLineEdit(this);
frameLenIndexLineEdit->setMaximumWidth(50);
frameLenIndexLabel->setBuddy(frameLenIndexLineEdit);
auto frameLenCountLabel = new QLabel(tr("帧长度标识的长度"), this);
frameLenCountComboBox = new QComboBox(this);
frameLenCountComboBox->addItems(QStringList() << "1" << "2");
frameEndLabel->setBuddy(frameLenCountComboBox);
auto frameHeadLenLabel = new QLabel(tr("帧头部长度"), this);
frameHeadLenLineEdit = new QLineEdit(this);
frameHeadLenLineEdit->setMaximumWidth(50);
frameHeadLenLabel->setBuddy(frameHeadLenLineEdit);
auto frameEndLenLabel = new QLabel(tr("帧尾部长度"), this);
frameEndLenLineEdit = new QLineEdit(this);
frameEndLenLineEdit->setMaximumWidth(50);
frameEndLabel->setBuddy(frameEndLenLineEdit);
auto hLayout3 = new QHBoxLayout;
hLayout3->addWidget(frameLenIndexLabel);
hLayout3->addWidget(frameLenIndexLineEdit);
hLayout3->addWidget(frameLenCountLabel);
hLayout3->addWidget(frameLenCountComboBox);
hLayout3->addWidget(frameHeadLenLabel);
hLayout3->addWidget(frameHeadLenLineEdit);
hLayout3->addWidget(frameEndLenLabel);
hLayout3->addWidget(frameEndLenLineEdit);
hLayout3->addStretch();
okButton = new QPushButton(tr("确认"), this);
cancelButton = new QPushButton(tr("取消"), this);
auto hLayout4 = new QHBoxLayout;
hLayout4->addStretch();
hLayout4->addWidget(okButton);
hLayout4->addWidget(cancelButton);
auto mainLayout = new QVBoxLayout;
mainLayout->addLayout(hLayout1);
mainLayout->addLayout(hLayout2);
mainLayout->addLayout(hLayout3);
mainLayout->addStretch();
mainLayout->addLayout(hLayout4);
setLayout(mainLayout);
}
void FrameInfoDialog::initUiValue(FrameInfo info) {
frameLineEdit->setText(info.frame);
frameHeadLineEdit->setText(QString::number(info.head, 16).toUpper());
frameEndLineEdit->setText(QString::number(info.end, 16).toUpper());
frameLenIndexLineEdit->setText(QString::number(info.lenIndex));
frameLenCountComboBox->setCurrentText(QString::number(info.lenCount));
frameHeadLenLineEdit->setText(QString::number(info.headLen));
frameEndLenLineEdit->setText(QString::number(info.endLen));
}
void FrameInfoDialog::createConnect() {
connect(okButton, &QPushButton::clicked, [this] {
FrameInfo info = FrameInfo();
info.frame = frameLineEdit->text();
info.head = (unsigned char) frameHeadLineEdit->text().toInt(nullptr, 16);
info.end = (unsigned char) frameEndLineEdit->text().toInt(nullptr, 16);
info.lenIndex = frameLenIndexLineEdit->text().toInt();
info.lenCount = frameLenCountComboBox->currentText().toInt();
info.headLen = frameHeadLenLineEdit->text().toInt();
info.endLen = frameEndLenLineEdit->text().toInt();
emit frameInfoChanged(info);
accept();
});
connect(cancelButton, &QPushButton::clicked, this, &FrameInfoDialog::reject);
}