You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
4.0 KiB
C++
104 lines
4.0 KiB
C++
#include "testwidget.h"
|
|
#include "QPushButton"
|
|
#include "QLineEdit"
|
|
#include "QAbstractItemView"
|
|
#pragma execution_character_set("utf-8")
|
|
TestWidget::TestWidget(QWidget *parent)
|
|
: QWidget(parent)
|
|
{
|
|
ui.setupUi(this);
|
|
m_treewidget = ui.treeWidget;
|
|
|
|
initTreewidget(m_treewidget);
|
|
|
|
}
|
|
|
|
void TestWidget::initTreewidget(QTreeWidget* pTreewidget)
|
|
{
|
|
QStringList header;
|
|
header.append("属性");
|
|
header.append("值");
|
|
pTreewidget->setHeaderLabels(header);
|
|
pTreewidget->header()->setStretchLastSection(true);
|
|
pTreewidget->setColumnCount(2);
|
|
pTreewidget->setStyleSheet("QTreeView::item:hover{background-color:rgb(0,255,0,50)}"
|
|
"QTreeView::item:selected{background-color:rgb(255,0,0,100)}");
|
|
//pTreewidget->setSelectionModel(QAbstractItemView::ExtendedSelection);
|
|
pTreewidget->setColumnWidth(0, 100);
|
|
addIPRoot(pTreewidget);
|
|
addEDitRoot(pTreewidget);
|
|
|
|
}
|
|
|
|
void TestWidget::addIPRoot(QTreeWidget *pTreewidget)
|
|
{
|
|
|
|
QRegExp regExpIP("((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[\\.]){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])");
|
|
QRegExp regExpNetPort("((6553[0-5])|[655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{3}|[1-9][0-9]{2}|[1-9][0-9]|[0-9])");
|
|
QRegExp regExpChannel("[0-5]");
|
|
|
|
QTreeWidgetItem *m_IPItems = new QTreeWidgetItem(pTreewidget, QStringList(QString("IP地址配置")));
|
|
|
|
QTreeWidgetItem *m_ServerItems = new QTreeWidgetItem(m_IPItems, QStringList(QString("本机服务器IP地址设置")));
|
|
QList<QTreeWidgetItem *> serveritems;
|
|
serveritems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("操作"))));
|
|
serveritems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("IP地址"))));
|
|
serveritems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("开放端口"))));
|
|
m_ServerItems->addChildren(serveritems);
|
|
QPushButton* m_pButOpen = new QPushButton("打开服务");
|
|
QLineEdit *m_EditserverIP = new QLineEdit;
|
|
QLineEdit *m_EditserverPort = new QLineEdit;
|
|
m_EditserverIP->setValidator(new QRegExpValidator(regExpIP, this));
|
|
m_EditserverPort->setValidator(new QRegExpValidator(regExpNetPort, this));
|
|
m_EditserverIP->setText("192.168.1.1");
|
|
m_EditserverPort->setText("100");
|
|
pTreewidget->setItemWidget(serveritems.at(0), 1, m_pButOpen);
|
|
pTreewidget->setItemWidget(serveritems.at(1), 1, m_EditserverIP);
|
|
pTreewidget->setItemWidget(serveritems.at(2), 1, m_EditserverPort);
|
|
|
|
QTreeWidgetItem *m_ClientItems = new QTreeWidgetItem(m_IPItems, QStringList(QString("目标客户端IP地址设置")));
|
|
QList<QTreeWidgetItem*> clientitems;
|
|
clientitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("IP地址"))));
|
|
clientitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("源端口"))));
|
|
|
|
m_ClientItems->addChildren(clientitems);
|
|
QLineEdit *m_EditclientIP = new QLineEdit;
|
|
QLineEdit *m_EditclientPort = new QLineEdit;
|
|
m_EditclientIP->setValidator(new QRegExpValidator(regExpIP, this));
|
|
m_EditclientPort->setValidator(new QRegExpValidator(regExpNetPort, this));
|
|
|
|
pTreewidget->setItemWidget(clientitems.at(0), 1, m_EditclientIP);
|
|
pTreewidget->setItemWidget(clientitems.at(1), 1, m_EditclientPort);
|
|
|
|
QPushButton *pSaveButton = new QPushButton("保存");
|
|
QTreeWidgetItem* saveItem = new QTreeWidgetItem(m_IPItems, QStringList(QString("保存设置")));
|
|
pTreewidget->setItemWidget(saveItem, 1, pSaveButton);
|
|
|
|
}
|
|
|
|
void TestWidget::addEDitRoot(QTreeWidget *pTreewidget)
|
|
{
|
|
QTreeWidgetItem *m_IPItems = new QTreeWidgetItem(pTreewidget, QStringList(QString("Edit设置")));
|
|
|
|
QList<QTreeWidgetItem *> items;
|
|
QList<QLineEdit*> pLineEdits;
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
|
|
QLineEdit *pEdit = new QLineEdit;
|
|
pEdit->setText(QString("%1").arg(i));
|
|
pLineEdits.append(pEdit);
|
|
}
|
|
m_IPItems->addChildren(items);
|
|
pTreewidget->insertTopLevelItem(0, m_IPItems);
|
|
for (int nIndex = 0; nIndex < pLineEdits.size(); nIndex++)
|
|
{
|
|
pTreewidget->setItemWidget(items.at(nIndex), 1, pLineEdits.at(nIndex));
|
|
}
|
|
}
|
|
|
|
TestWidget::~TestWidget()
|
|
{
|
|
m_treewidget->clear();
|
|
}
|