class TInputDialog : public QDialog{ Q_OBJECTprotected: QDialogButtonBox *btnBox; QGridLayout *layProp;public: TInputDialog(QWidget *parent = 0); ~TInputDialog();};class TConnectDlg : public TInputDialog{ Q_OBJECTprotected: QLabel *lbSpeed, *lbPort, *lbPsw, *lbCodePage; QComboBox *cbSpeed, *cbPort; QLineEdit *lePsw;public: TConnectDlg(QWidget *parent = 0); ~TConnectDlg();};
TInputDialog::TInputDialog(QWidget *parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint){ setModal(true); btnBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); connect(btnBox, SIGNAL(accepted()), this, SLOT(accept())); connect(btnBox, SIGNAL(rejected()), this, SLOT(reject())); layProp = new QGridLayout(this);}TConnectDlg::TConnectDlg(QWidget *parent) : TInputDialog(parent){ lbSpeed = new QLabel("Скорость", this); lbPort = new QLabel("Порт", this); lbPsw = new QLabel("Пароль", this); cbSpeed = new QComboBox(this); QStringList slSpeed("9600"); slSpeed.append("19200"); slSpeed.append("57600"); slSpeed.append("115200"); cbSpeed->addItems(slSpeed); cbSpeed->setCurrentIndex(3); cbPort = new QComboBox(this); TComPort *port = new TComPort(); QString portList = QString::fromStdString(port->GetPortList()); QStringList slPort; if(portList.length()) slPort = portList.split(","); else slPort.append("Нет доступных портов"); cbPort->addItems(slPort); delete port; lePsw = new QLineEdit("0000", this); lePsw->setEchoMode(QLineEdit::Password); lePsw->setMaxLength(4); layProp->addWidget(lbPort, 0, 0, Qt::AlignLeft); layProp->addWidget(lbSpeed, 1, 0, Qt::AlignLeft); layProp->addWidget(lbPsw, 2, 0, Qt::AlignLeft); layProp->addWidget(cbSpeed, 1, 1, Qt::AlignLeft); layProp->addWidget(cbPort, 0, 1, Qt::AlignLeft); layProp->addWidget(lePsw, 2, 1, Qt::AlignLeft); layProp->addWidget(btnBox, 3, 0, 1, 2); setLayout(layProp);}
#ifndef DIALOG_H#define DIALOG_H#include <QDialog>class QLineEdit;class QComboBox;class QPushButton;class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0); ~Dialog();private: QComboBox* cbSpeed; QComboBox* cbPort; QLineEdit* lePassword; QPushButton* pbOk; QPushButton* pbCancel;};#endif // DIALOG_H
#include "dialog.h"#include <QtGui>Dialog::Dialog(QWidget *parent) : QDialog(parent){ cbPort = new QComboBox(this); cbPort->addItems(QStringList() << "COM1" <<"COM2" <<"COM3"); cbSpeed = new QComboBox(this); cbSpeed->addItems(QStringList() << "34800" <<"57600" <<"115200"); lePassword = new QLineEdit(this); lePassword->setEchoMode(QLineEdit::Password); pbOk = new QPushButton(tr("OK"), this); pbCancel = new QPushButton(tr("Cancel"), this); connect(pbOk, SIGNAL(released()), this, SLOT(accept())); connect(pbCancel, SIGNAL(released()), this, SLOT(reject())); QGridLayout* gl = new QGridLayout; gl->addWidget(new QLabel(tr("Port"),this), 0, 0); gl->addWidget(cbPort, 0, 1, 1, 2); gl->addWidget(new QLabel(tr("Speed"),this), 1, 0); gl->addWidget(cbSpeed, 1, 1, 1, 2); gl->addWidget(new QLabel(tr("Password"),this), 2, 0); gl->addWidget(lePassword, 2, 1, 1, 2); gl->addWidget(pbOk, 3, 1); gl->addWidget(pbCancel, 3, 2); setLayout(gl);}Dialog::~Dialog(){}
layProp->addWidget(cbSpeed, 1, 1, Qt::AlignLeft);
layProp->addWidget(cbSpeed, 1, 1);