Merge branch 'test' into 'master'
已完成基本功能 See merge request kevin/tcp_ip_scan!1
This commit is contained in:
+191
-169
@@ -26,223 +26,245 @@ quint32 ipv4str_to_int(const QString& ipstr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void trytry::run()
|
|
||||||
|
|
||||||
|
trytry::trytry()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (ipint != 0 && ipstr != "")
|
|
||||||
{
|
|
||||||
//qDebug()<<ipstr<<":"<<ipint;
|
|
||||||
QTcpSocket m_socket;
|
|
||||||
m_socket.connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
|
|
||||||
if (m_socket.waitForConnected(timeout))
|
|
||||||
{
|
|
||||||
while(*outputbusy);
|
|
||||||
*outputbusy+=1;
|
|
||||||
QString temp = QString("%1:%2").arg(ipstr).arg(ipint);
|
|
||||||
output_list->append(temp);
|
|
||||||
//qDebug() << ipstr<<":"<< ipint;
|
|
||||||
//msleep(1);
|
|
||||||
*outputbusy-=1;
|
|
||||||
}
|
|
||||||
m_socket.disconnectFromHost();
|
|
||||||
m_socket.disconnect();
|
|
||||||
|
|
||||||
|
|
||||||
//while(*barbusy);
|
|
||||||
//*barbusy+=1;
|
|
||||||
|
|
||||||
//str.asprintf("停止 %.3f",((0.0+*nt_bar)/(0.0+*t_bar))*100);
|
|
||||||
//bt->setText(QString("%1%").arg(((0.0+*nt_bar)/(0.0+*t_bar))*100));
|
|
||||||
//qDebug()<<*nt_bar<<"/"<<*t_bar;
|
|
||||||
//*barbusy-=1;
|
|
||||||
|
|
||||||
//*now_thread_num-=1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void trytry::run()
|
||||||
|
{
|
||||||
|
emit try_one(1);
|
||||||
|
QString temp = QString("%1:%2").arg(ipstr).arg(ipint);
|
||||||
|
|
||||||
|
|
||||||
|
QTcpSocket *m_socket=new QTcpSocket;
|
||||||
|
|
||||||
|
connect(m_socket,&QTcpSocket::disconnected,[=]{
|
||||||
|
qDebug()<<temp<<"Disconnected";
|
||||||
|
//m_socket->disconnect();
|
||||||
|
m_socket->close();
|
||||||
|
m_socket->flush();
|
||||||
|
m_socket->deleteLater();
|
||||||
|
delete m_socket;
|
||||||
|
});
|
||||||
|
connect(m_socket,&QTcpSocket::connected,[=]{
|
||||||
|
emit connect_ok(temp);
|
||||||
|
qDebug()<<temp;
|
||||||
|
});
|
||||||
|
|
||||||
|
m_socket->connectToHost(ipstr, ipint, QTcpSocket::ReadWrite);
|
||||||
|
m_socket->waitForConnected(timeout);
|
||||||
|
m_socket->disconnectFromHost();
|
||||||
|
|
||||||
|
emit try_one(-1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
dispatch::dispatch()
|
dispatch::dispatch()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void dispatch::tray(const QString& ipstr, quint32 ipint)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//qDebug()<<"thread "<<now_thread_num<<":"<<set_thread_num;
|
|
||||||
while (now_thread_num> set_thread_num)
|
|
||||||
{
|
|
||||||
//qDebug()<<"while "<<now_thread_num<<":"<<set_thread_num;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_telnet=new trytry;
|
|
||||||
try_telnet->ipstr = ipstr;
|
|
||||||
try_telnet->ipint = ipint;
|
|
||||||
try_telnet->timeout = timeout;
|
|
||||||
try_telnet->output_list = output_list;
|
|
||||||
|
|
||||||
|
|
||||||
try_telnet->now_thread_num = &now_thread_num;
|
|
||||||
|
|
||||||
try_telnet->t_bar=t_bar;
|
|
||||||
try_telnet->nt_bar=nt_bar;
|
|
||||||
|
|
||||||
try_telnet->outputbusy=&outputbusy;
|
|
||||||
try_telnet->barbusy=&barbusy;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//try_telnet->moveToThread(main_thread);
|
|
||||||
|
|
||||||
connect(try_telnet,&QThread::started,[=]()
|
|
||||||
{
|
|
||||||
now_thread_num+=1;
|
|
||||||
|
|
||||||
thread_start_lock=0;
|
|
||||||
|
|
||||||
});
|
|
||||||
connect(try_telnet,&QThread::finished,[=]()
|
|
||||||
{
|
|
||||||
now_thread_num-=1;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
while(thread_start_lock);
|
|
||||||
try_telnet->start();
|
|
||||||
thread_start_lock=1;
|
|
||||||
|
|
||||||
*nt_bar+=1;
|
|
||||||
emit dispatch_one();
|
|
||||||
}
|
|
||||||
|
|
||||||
void dispatch::run()
|
void dispatch::run()
|
||||||
{
|
{
|
||||||
|
QStringList str_ip_list = ip_list.split("\n");
|
||||||
|
|
||||||
//qDebug()<< ui->IP_list->toPlainText();
|
|
||||||
|
|
||||||
//the_bar->setValue(20);
|
|
||||||
|
|
||||||
//QTcpSocket* m_socket = new QTcpSocket;
|
|
||||||
|
|
||||||
QStringList str_ip_list = ip_list->toPlainText().split("\n");
|
|
||||||
QStringList str_ips_list;
|
QStringList str_ips_list;
|
||||||
|
QStringList str_list_more;
|
||||||
QStringList str_port_list = port_list->toPlainText().split("\n");
|
quint32 ipa,ipb;
|
||||||
QStringList str_ports_list;
|
QStringList str_port_list = port_list.split("\n");
|
||||||
|
QStringList str_ports_temp;
|
||||||
|
QStringList str_porttoport_temp;
|
||||||
|
quint32 porta,portb;
|
||||||
|
QList <quint32> ports_list;
|
||||||
|
quint64 ports_num=0;
|
||||||
|
quint64 ips_num=0;
|
||||||
|
QRegExp ex_ipv4 ("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$");
|
||||||
|
QRegExp ex_ipv4_more("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)-((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$");
|
||||||
|
QRegExp ex_ipv4_more2("^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)/(0?[0-9]|1[0-9]|2[0-9]|3[0-2])$");
|
||||||
|
QRegExp ex_ipv6 ("^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");
|
||||||
|
QRegExp ex_domain ("^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
quint32 ips_num=0;
|
|
||||||
quint32 ports_num=0;
|
|
||||||
for (int i = 0; i < str_ip_list.size(); ++i)
|
for (int i = 0; i < str_ip_list.size(); ++i)
|
||||||
{
|
{
|
||||||
//qDebug() << str_ip_list.at(i);
|
if(ex_ipv4.exactMatch(str_ip_list.at(i)))
|
||||||
str_ips_list = str_ip_list.at(i).split("-");
|
{
|
||||||
if (str_ips_list.size() > 1)
|
qDebug() << str_ip_list.at(i)<<" is ipv4";
|
||||||
|
str_ips_list.append(str_ip_list.at(i));
|
||||||
|
ips_num+=1;
|
||||||
|
}else if(ex_ipv4_more.exactMatch(str_ip_list.at(i)))
|
||||||
|
{
|
||||||
|
qDebug() << str_ip_list.at(i)<<" is ipv4_more";
|
||||||
|
str_list_more=str_ip_list.at(i).split("-");
|
||||||
|
ipa=ipv4str_to_int(str_list_more.at(0));
|
||||||
|
ipb=ipv4str_to_int(str_list_more.at(1));
|
||||||
|
if(ipa>ipb)
|
||||||
|
{
|
||||||
|
for(;ipb<=ipa;ipb++)
|
||||||
|
{
|
||||||
|
str_ips_list.append(ipv4int_to_str(ipb));
|
||||||
|
ips_num+=1;
|
||||||
|
}
|
||||||
|
}else if(ipb>ipa)
|
||||||
|
{
|
||||||
|
for(;ipa<=ipb;ipa++)
|
||||||
|
{
|
||||||
|
str_ips_list.append(ipv4int_to_str(ipa));
|
||||||
|
ips_num+=1;
|
||||||
|
}
|
||||||
|
}else//=
|
||||||
|
{
|
||||||
|
str_ips_list.append(ipv4int_to_str(ipa));
|
||||||
|
ips_num+=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(ex_ipv4_more2.exactMatch(str_ip_list.at(i)))
|
||||||
{
|
{
|
||||||
|
|
||||||
ips_num=ipv4str_to_int(str_ips_list.at(str_ips_list.size() - 1))-ipv4str_to_int(str_ips_list.at(0))+1;
|
qDebug() << str_ip_list.at(i)<<" is ipv4_more2";
|
||||||
|
str_list_more=str_ip_list.at(i).split("/");
|
||||||
|
ipa=ipv4str_to_int(str_list_more.at(0));
|
||||||
|
ipb=qPow(2,(32-str_list_more.at(1).toInt()));
|
||||||
|
for(quint32 ii=0;ii<ipb;ii++)
|
||||||
|
{
|
||||||
|
str_ips_list.append(ipv4int_to_str(ipa+ii));
|
||||||
|
ips_num+=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(ex_ipv6.exactMatch(str_ip_list.at(i)))
|
||||||
|
{
|
||||||
|
|
||||||
|
qDebug() << str_ip_list.at(i)<<" is ipv6";
|
||||||
|
str_ips_list.append(str_ip_list.at(i));
|
||||||
|
ips_num+=1;
|
||||||
|
}else if(ex_domain.exactMatch(str_ip_list.at(i)))
|
||||||
|
{
|
||||||
|
|
||||||
|
qDebug() << str_ip_list.at(i)<<" is domain";
|
||||||
|
str_ips_list.append(str_ip_list.at(i));
|
||||||
|
ips_num+=1;
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
|
qDebug() << str_ip_list.at(i)<<" don't know what is thit";
|
||||||
ips_num+=1;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
|
QRegExp ex_port ("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$");
|
||||||
|
QRegExp ex_porttoport("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])-(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$");
|
||||||
|
//QRegExp ex_portmore ("^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]);$");
|
||||||
|
for (int i = 0; i < str_port_list.size(); ++i)
|
||||||
{
|
{
|
||||||
str_ports_list = str_port_list.at(ii).split("-");
|
str_ports_temp=str_port_list.at(i).split(";");
|
||||||
if (str_ports_list.size() > 1)
|
for (int ii = 0; ii < str_ports_temp.size(); ++ii)
|
||||||
{
|
{
|
||||||
|
if(ex_port.exactMatch(str_ports_temp.at(ii)))
|
||||||
ports_num=str_ports_list.at(str_ports_list.size() - 1).toInt() -str_ports_list.at(0).toInt()+1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
ports_num+=1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*t_bar=ips_num*ports_num;
|
|
||||||
*nt_bar=0;
|
|
||||||
outputbusy=0;
|
|
||||||
|
|
||||||
\
|
|
||||||
//qDebug()<<*t_bar;
|
|
||||||
//*****************************
|
|
||||||
for (int i = 0; i < str_ip_list.size(); ++i)
|
|
||||||
{
|
|
||||||
//qDebug() << str_ip_list.at(i);
|
|
||||||
str_ips_list = str_ip_list.at(i).split("-");
|
|
||||||
if (str_ips_list.size() > 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
for (quint32 ips = ipv4str_to_int(str_ips_list.at(0)); ips < ipv4str_to_int(str_ips_list.at(str_ips_list.size() - 1)) + 1; ips++)
|
|
||||||
{
|
{
|
||||||
//qDebug() << ipv4int_to_str(ips);
|
qDebug()<<str_ports_temp.at(ii)<<" norlmore port";
|
||||||
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
|
ports_list.append(str_ports_temp.at(ii).toInt());
|
||||||
{
|
ports_num+=1;
|
||||||
str_ports_list = str_port_list.at(ii).split("-");
|
|
||||||
if (str_ports_list.size() > 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
for (quint32 prots = str_ports_list.at(0).toInt(); prots < str_ports_list.at(str_ports_list.size() - 1).toInt() + 1; prots++)
|
}else if(ex_porttoport.exactMatch(str_ports_temp.at(ii)))
|
||||||
{
|
|
||||||
dispatch::tray(ipv4int_to_str(ips), prots);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
dispatch::tray(ipv4int_to_str(ips), str_ports_list.at(0).toInt());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
for (quint32 ii = 0; ii < str_port_list.size(); ii++)
|
|
||||||
{
|
{
|
||||||
str_ports_list = str_port_list.at(ii).split("-");
|
qDebug()<<str_ports_temp.at(ii)<<" port to port";
|
||||||
if (str_ports_list.size() > 1)
|
str_porttoport_temp=str_ports_temp.at(ii).split("-");
|
||||||
|
porta=str_porttoport_temp.at(0).toInt();
|
||||||
|
portb=str_porttoport_temp.at(1).toInt();
|
||||||
|
if(porta>portb)
|
||||||
{
|
{
|
||||||
|
for(;portb<=porta;portb++)
|
||||||
|
{
|
||||||
|
ports_list.append(portb);
|
||||||
|
ports_num+=1;
|
||||||
|
|
||||||
for (quint32 prots = str_ports_list.at(0).toInt(); prots < str_ports_list.at(str_ports_list.size() - 1).toInt() + 1; prots++)
|
}
|
||||||
|
}else if(portb>porta)
|
||||||
|
{
|
||||||
|
for(;porta<=portb;porta++)
|
||||||
{
|
{
|
||||||
dispatch::tray(str_ips_list.at(0), prots);
|
ports_list.append(porta);
|
||||||
}
|
ports_num+=1;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
dispatch::tray(str_ips_list.at(0), str_ports_list.at(0).toInt());
|
}
|
||||||
|
}else//=
|
||||||
|
{
|
||||||
|
ports_list.append(porta);
|
||||||
|
ports_num+=1;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
quint64 scantimes=ips_num*ports_num,now_scan=0;
|
||||||
|
|
||||||
|
qDebug() << "IP: "<<ips_num;
|
||||||
|
qDebug() << "port :"<<ports_num;
|
||||||
|
qDebug() << "scan times :"<<scantimes;
|
||||||
|
quint16 jindu=0,jindu_old=0;
|
||||||
|
for(quint64 ii=0;ii<ips_num;ii++)
|
||||||
|
{
|
||||||
|
for(quint64 iii=0;iii<ports_num;iii++)
|
||||||
|
{
|
||||||
|
|
||||||
|
//qDebug() <<str_ips_list.at(ii)<<":"<< ports_list.at(iii);
|
||||||
|
|
||||||
|
//qDebug()<<"now:"<<this->now_thread_num<<" - set:"<<this->set_thread_num;
|
||||||
|
|
||||||
|
|
||||||
//for (unsigned long a = str_ips_list.at(0).toInt();a< str_ip_list.size()>1? str_ips_list.at(1).toInt()+1: str_ips_list.at(0).toInt()+1;a++)
|
connecttry=new trytry;
|
||||||
//{
|
connecttry->timeout=this->timeout;
|
||||||
// qDebug() << a;
|
connecttry->ipstr=str_ips_list.at(ii);
|
||||||
//}
|
connecttry->ipint=ports_list.at(iii);
|
||||||
|
|
||||||
|
|
||||||
|
connect(connecttry,&trytry::try_one,this,&dispatch::f_one);
|
||||||
|
connect(connecttry,&trytry::connect_ok,[=](QString temp){emit connect_ok(temp);});
|
||||||
|
/*
|
||||||
|
connect(connecttry,&trytry::finished,[=]{
|
||||||
|
connecttry->disconnect();
|
||||||
|
connecttry->quit();
|
||||||
|
connecttry->wait();
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
connecttry->start();
|
||||||
|
|
||||||
|
jindu=(quint16)(((qfloat16)(now_scan)/(qfloat16)(scantimes))*100);
|
||||||
|
if(jindu!=jindu_old)
|
||||||
|
{
|
||||||
|
jindu_old=jindu;
|
||||||
|
//qDebug() <<jindu;
|
||||||
|
|
||||||
|
emit return_jindu(jindu);
|
||||||
|
}
|
||||||
|
|
||||||
|
now_scan+=1;
|
||||||
|
|
||||||
|
while(this->now_thread_num>this->set_thread_num);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//sleep(1);
|
|
||||||
while(now_thread_num);
|
|
||||||
|
|
||||||
emit dispatch_finish();
|
emit dispatch_finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dispatch::f_one(qint16 temp)
|
||||||
|
{
|
||||||
|
this->now_thread_num+=temp;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
+18
-25
@@ -9,26 +9,22 @@
|
|||||||
#include <QTcpSocket> //socket
|
#include <QTcpSocket> //socket
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
|
#include <qmath.h>
|
||||||
|
#include <QFloat16>
|
||||||
|
|
||||||
class trytry : public QThread
|
class trytry : public QThread
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
trytry();
|
||||||
|
|
||||||
quint16 *outputbusy;
|
|
||||||
quint16 *barbusy;
|
|
||||||
quint16 timeout;
|
quint16 timeout;
|
||||||
QString ipstr;
|
QString ipstr;
|
||||||
quint32 ipint;
|
quint32 ipint;
|
||||||
int *now_thread_num;
|
|
||||||
QTextEdit* output_list;
|
|
||||||
|
|
||||||
quint64 *t_bar;
|
|
||||||
quint64 *nt_bar;
|
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
signals:
|
||||||
|
void try_one(qint16);
|
||||||
|
void connect_ok(QString);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,27 +35,24 @@ public:
|
|||||||
|
|
||||||
dispatch();
|
dispatch();
|
||||||
|
|
||||||
int set_thread_num;
|
qint16 set_thread_num;
|
||||||
int now_thread_num;
|
qint16 now_thread_num;
|
||||||
int thread_start_lock=0;
|
quint16 thread_start_lock=0;
|
||||||
quint16 timeout;
|
quint16 timeout;
|
||||||
quint64 *t_bar;
|
|
||||||
quint64 *nt_bar;
|
|
||||||
quint16 outputbusy=0;
|
|
||||||
quint16 barbusy=0;
|
|
||||||
//QThread* main_thread;
|
|
||||||
QPlainTextEdit* ip_list;
|
|
||||||
QPlainTextEdit* port_list;
|
|
||||||
QTextEdit* output_list;
|
|
||||||
|
|
||||||
trytry* try_telnet;
|
QString ip_list;
|
||||||
|
QString port_list;
|
||||||
|
|
||||||
|
trytry *connecttry;
|
||||||
|
|
||||||
|
|
||||||
void tray(const QString& ipstr, quint32 ipint);
|
|
||||||
void run();
|
void run();
|
||||||
|
void f_one(qint16 temp);
|
||||||
signals:
|
signals:
|
||||||
void dispatch_finish();
|
void dispatch_finish();
|
||||||
void dispatch_one();
|
void dispatch_one();
|
||||||
|
void return_jindu(quint16);
|
||||||
|
void connect_ok(QString);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+344
-63
@@ -3,14 +3,66 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Widget::keyboard_en(bool a)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Widget::auto_edit()
|
|
||||||
{
|
{
|
||||||
//qDebug("%d",rand());
|
ui->pushButton_2->setDisabled(a);
|
||||||
|
ui->pushButton_3->setDisabled(a);
|
||||||
|
ui->pushButton_4->setDisabled(a);
|
||||||
|
ui->pushButton_5->setDisabled(a);
|
||||||
|
ui->pushButton_6->setDisabled(a);
|
||||||
|
ui->pushButton_7->setDisabled(a);
|
||||||
|
ui->pushButton_8->setDisabled(a);
|
||||||
|
ui->pushButton_9->setDisabled(a);
|
||||||
|
ui->pushButton_10->setDisabled(a);
|
||||||
|
ui->pushButton_11->setDisabled(a);
|
||||||
|
ui->pushButton_12->setDisabled(a);
|
||||||
|
ui->pushButton_13->setDisabled(a);
|
||||||
|
ui->pushButton_14->setDisabled(a);
|
||||||
|
ui->pushButton_15->setDisabled(a);
|
||||||
|
ui->pushButton_16->setDisabled(a);
|
||||||
|
ui->pushButton_17->setDisabled(a);
|
||||||
|
ui->pushButton_18->setDisabled(a);
|
||||||
|
ui->pushButton_19->setDisabled(a);
|
||||||
|
ui->pushButton_20->setDisabled(a);
|
||||||
|
ui->pushButton_21->setDisabled(a);
|
||||||
|
ui->pushButton_22->setDisabled(a);
|
||||||
|
ui->pushButton_23->setDisabled(a);
|
||||||
|
ui->pushButton_24->setDisabled(a);
|
||||||
|
ui->pushButton_25->setDisabled(a);
|
||||||
|
ui->pushButton_26->setDisabled(a);
|
||||||
|
ui->pushButton_27->setDisabled(a);
|
||||||
|
ui->pushButton_28->setDisabled(a);
|
||||||
|
ui->pushButton_29->setDisabled(a);
|
||||||
|
ui->pushButton_30->setDisabled(a);
|
||||||
|
ui->pushButton_31->setDisabled(a);
|
||||||
|
ui->pushButton_32->setDisabled(a);
|
||||||
|
ui->pushButton_33->setDisabled(a);
|
||||||
|
ui->pushButton_34->setDisabled(a);
|
||||||
|
ui->pushButton_35->setDisabled(a);
|
||||||
|
ui->pushButton_36->setDisabled(a);
|
||||||
|
ui->pushButton_37->setDisabled(a);
|
||||||
|
ui->pushButton_38->setDisabled(a);
|
||||||
|
ui->pushButton_39->setDisabled(a);
|
||||||
|
ui->pushButton_40->setDisabled(a);
|
||||||
|
ui->pushButton_41->setDisabled(a);
|
||||||
|
ui->pushButton_42->setDisabled(a);
|
||||||
|
ui->pushButton_43->setDisabled(a);
|
||||||
|
ui->pushButton_44->setDisabled(a);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Widget::output_chuli(QString temp)
|
||||||
|
{
|
||||||
|
ui->outputlist->append(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Widget::jindu_chuli(quint16 temp)
|
||||||
|
{
|
||||||
|
//qDebug()<<temp;
|
||||||
|
ui->progressBar->setValue(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -20,81 +72,310 @@ Widget::Widget(QWidget *parent)
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
//qDebug("hello world");
|
ui->outputlist->setReadOnly(true);
|
||||||
|
ui->stard_scan->setText("start scan");
|
||||||
|
|
||||||
|
connect(this,&Widget::start_scan,[=]{
|
||||||
|
scan_flag=1;
|
||||||
|
keyboard_en(true);
|
||||||
|
ui->IP_list->setReadOnly(true);
|
||||||
|
ui->port_list->setReadOnly(true);
|
||||||
|
ui->timeout->setReadOnly(true);
|
||||||
|
ui->threads->setReadOnly(true);
|
||||||
|
ui->stard_scan->setText("stop scan");
|
||||||
|
dispatch_thread = new dispatch;//线程分发
|
||||||
|
dispatch_thread->ip_list=ui->IP_list->toPlainText();
|
||||||
|
dispatch_thread->port_list=ui->port_list->toPlainText();
|
||||||
|
dispatch_thread->set_thread_num = ui->threads->value();
|
||||||
|
dispatch_thread->now_thread_num = 0;
|
||||||
|
dispatch_thread->timeout = ui->timeout->value();
|
||||||
|
connect(dispatch_thread,&dispatch::dispatch_finish,[=]{
|
||||||
|
emit stop_scan();
|
||||||
|
});
|
||||||
|
connect(dispatch_thread,&dispatch::return_jindu,this,&Widget::jindu_chuli,Qt::QueuedConnection);
|
||||||
|
connect(dispatch_thread,&dispatch::connect_ok,this,&Widget::output_chuli,Qt::QueuedConnection);
|
||||||
|
ui->progressBar->setValue(0);
|
||||||
|
dispatch_thread->start();
|
||||||
|
ui->stard_scan->setDisabled(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(this,&Widget::stop_scan,[=]{
|
||||||
|
scan_flag=0;
|
||||||
|
keyboard_en(false);
|
||||||
|
ui->IP_list->setReadOnly(false);
|
||||||
|
ui->port_list->setReadOnly(false);
|
||||||
|
ui->timeout->setReadOnly(false);
|
||||||
|
ui->threads->setReadOnly(false);
|
||||||
|
ui->stard_scan->setText("start scan");
|
||||||
|
|
||||||
//main_thread = new QThread(this);
|
//dispatch_thread->disconnect();
|
||||||
//main_thread->start();
|
dispatch_thread->quit();
|
||||||
connect(ui->stard_scan, &QPushButton::pressed, [=]()
|
dispatch_thread->wait();
|
||||||
{
|
//delete dispatch_thread;
|
||||||
|
ui->stard_scan->setDisabled(false);
|
||||||
|
qDebug() << "tray_exit";
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->stard_scan, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
ui->stard_scan->setDisabled(true);
|
||||||
if(scan_flag==0)
|
if(scan_flag==0)
|
||||||
{
|
{
|
||||||
scan_flag=1;
|
emit start_scan();
|
||||||
|
|
||||||
ui->IP_list->setReadOnly(true);
|
|
||||||
ui->port_list->setReadOnly(true);
|
|
||||||
ui->timeout->setReadOnly(true);
|
|
||||||
ui->threads->setReadOnly(true);
|
|
||||||
ui->stard_scan->setText("停止");
|
|
||||||
|
|
||||||
|
|
||||||
//dispatch* dispatch_thread;
|
|
||||||
dispatch_thread = new dispatch;
|
|
||||||
|
|
||||||
dispatch_thread->ip_list = ui->IP_list;
|
|
||||||
dispatch_thread->port_list = ui->port_list;
|
|
||||||
dispatch_thread->output_list = ui->outputlist;
|
|
||||||
|
|
||||||
|
|
||||||
dispatch_thread->set_thread_num = ui->threads->value();
|
|
||||||
dispatch_thread->now_thread_num = 0;
|
|
||||||
dispatch_thread->timeout = ui->timeout->value();
|
|
||||||
|
|
||||||
dispatch_thread->nt_bar=&nt_bar;
|
|
||||||
dispatch_thread->t_bar=&t_bar;
|
|
||||||
|
|
||||||
//dispatch_thread->main_thread = main_thread;
|
|
||||||
//dispatch_thread->moveToThread(main_thread);
|
|
||||||
connect(dispatch_thread, &dispatch::dispatch_one, [=]()
|
|
||||||
{
|
|
||||||
//qDebug()<<100*nt_bar/t_bar;
|
|
||||||
//ui->t_bar->setValue(100*nt_bar/t_bar);
|
|
||||||
ui->stard_scan->setText(QString("停止 %1%").arg(100*nt_bar/t_bar));
|
|
||||||
|
|
||||||
});
|
|
||||||
connect(dispatch_thread, &dispatch::finished, [=]()
|
|
||||||
{
|
|
||||||
qDebug() << "dispatch_finish";
|
|
||||||
ui->IP_list->setReadOnly(false);
|
|
||||||
ui->port_list->setReadOnly(false);
|
|
||||||
ui->timeout->setReadOnly(false);
|
|
||||||
ui->threads->setReadOnly(false);
|
|
||||||
ui->stard_scan->setText("开始扫描");
|
|
||||||
scan_flag=0;
|
|
||||||
|
|
||||||
disconnect(dispatch_thread);
|
|
||||||
//delete dispatch_thread;
|
|
||||||
});
|
|
||||||
dispatch_thread->start();
|
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
qDebug() << "tray_exit";
|
|
||||||
dispatch_thread->terminate();
|
dispatch_thread->terminate();
|
||||||
|
emit stop_scan();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});//'scan button pass'
|
});//'scan button pass'
|
||||||
|
|
||||||
|
|
||||||
|
connect(ui->pushButton_2, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_2->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_3, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_3->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_4, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_4->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_5, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_5->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_6, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText("\n");
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_7, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_7->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_8, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_8->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_9, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_9->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_10, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_10->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_11, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_11->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_12, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_12->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_13, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_13->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_14, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_14->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_15, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_15->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_16, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_16->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_17, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_17->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_18, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_18->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_19, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->insertPlainText(ui->pushButton_19->text());
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_21, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->IP_list->clear();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
//connect(ui->IP_list,&QTextEdit::textChanged,this, &Widget::auto_edit);
|
connect(ui->pushButton_22, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_22->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_23, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_23->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_24, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_24->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_25, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_25->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_26, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_26->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_27, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_27->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_28, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_28->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_29, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_29->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_30, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->appendPlainText(ui->pushButton_30->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->pushButton_31, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_31->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_32, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_32->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_33, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_33->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_34, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_34->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_35, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_35->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_36, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_36->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_37, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_37->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_38, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_38->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_39, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_39->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_40, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText("\n");
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_41, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_41->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_42, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_42->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_43, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->clear();
|
||||||
|
|
||||||
|
});
|
||||||
|
connect(ui->pushButton_44, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->port_list->insertPlainText(ui->pushButton_44->text());
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->clearoutput, &QPushButton::pressed, [=]()
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->outputlist->clear();
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget::~Widget()
|
Widget::~Widget()
|
||||||
|
|||||||
@@ -33,6 +33,12 @@ public:
|
|||||||
quint64 t_bar=0;
|
quint64 t_bar=0;
|
||||||
quint64 nt_bar=0;
|
quint64 nt_bar=0;
|
||||||
|
|
||||||
|
void output_chuli(QString temp);
|
||||||
|
void jindu_chuli(quint16 temp);
|
||||||
|
void keyboard_en(bool a);
|
||||||
|
signals:
|
||||||
|
void stop_scan();
|
||||||
|
void start_scan();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::Widget* ui;
|
Ui::Widget* ui;
|
||||||
|
|||||||
+611
-38
@@ -6,19 +6,19 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>600</width>
|
<width>800</width>
|
||||||
<height>500</height>
|
<height>500</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>600</width>
|
<width>800</width>
|
||||||
<height>500</height>
|
<height>500</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>600</width>
|
<width>800</width>
|
||||||
<height>500</height>
|
<height>500</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@@ -44,9 +44,9 @@
|
|||||||
<widget class="QPushButton" name="stard_scan">
|
<widget class="QPushButton" name="stard_scan">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>420</x>
|
<x>690</x>
|
||||||
<y>220</y>
|
<y>220</y>
|
||||||
<width>171</width>
|
<width>91</width>
|
||||||
<height>41</height>
|
<height>41</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@@ -62,14 +62,14 @@
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>开始扫描</string>
|
<string>Start</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QSpinBox" name="threads">
|
<widget class="QSpinBox" name="threads">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>350</x>
|
<x>240</x>
|
||||||
<y>230</y>
|
<y>240</y>
|
||||||
<width>61</width>
|
<width>61</width>
|
||||||
<height>22</height>
|
<height>22</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -81,14 +81,14 @@
|
|||||||
<number>999</number>
|
<number>999</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>10</number>
|
<number>100</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>320</x>
|
<x>240</x>
|
||||||
<y>230</y>
|
<y>220</y>
|
||||||
<width>31</width>
|
<width>31</width>
|
||||||
<height>16</height>
|
<height>16</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -97,30 +97,17 @@
|
|||||||
<string>线程</string>
|
<string>线程</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>230</y>
|
|
||||||
<width>53</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>扫描结果</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="pushButton">
|
<widget class="QPushButton" name="pushButton">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>70</x>
|
<x>10</x>
|
||||||
<y>230</y>
|
<y>240</y>
|
||||||
<width>91</width>
|
<width>81</width>
|
||||||
<height>24</height>
|
<height>24</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>保存扫描结果</string>
|
<string>Save output</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
@@ -128,13 +115,14 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>20</y>
|
<y>20</y>
|
||||||
<width>141</width>
|
<width>171</width>
|
||||||
<height>71</height>
|
<height>71</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>IP范围
|
<string>IP范围 总数不能超过2147483647
|
||||||
127.0.0.1
|
127.0.0.1
|
||||||
|
192.168.0.0/24
|
||||||
0.0.0.0-255.255.255.255
|
0.0.0.0-255.255.255.255
|
||||||
domain.com</string>
|
domain.com</string>
|
||||||
</property>
|
</property>
|
||||||
@@ -144,7 +132,7 @@ domain.com</string>
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>270</y>
|
<y>270</y>
|
||||||
<width>581</width>
|
<width>771</width>
|
||||||
<height>221</height>
|
<height>221</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@@ -155,8 +143,8 @@ domain.com</string>
|
|||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>200</x>
|
<x>170</x>
|
||||||
<y>230</y>
|
<y>220</y>
|
||||||
<width>41</width>
|
<width>41</width>
|
||||||
<height>16</height>
|
<height>16</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -168,8 +156,8 @@ domain.com</string>
|
|||||||
<widget class="QSpinBox" name="timeout">
|
<widget class="QSpinBox" name="timeout">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>250</x>
|
<x>170</x>
|
||||||
<y>230</y>
|
<y>240</y>
|
||||||
<width>61</width>
|
<width>61</width>
|
||||||
<height>22</height>
|
<height>22</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -189,7 +177,7 @@ domain.com</string>
|
|||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>100</y>
|
<y>100</y>
|
||||||
<width>471</width>
|
<width>301</width>
|
||||||
<height>111</height>
|
<height>111</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@@ -197,13 +185,598 @@ domain.com</string>
|
|||||||
<widget class="QPlainTextEdit" name="port_list">
|
<widget class="QPlainTextEdit" name="port_list">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>490</x>
|
<x>483</x>
|
||||||
<y>100</y>
|
<y>100</y>
|
||||||
<width>104</width>
|
<width>111</width>
|
||||||
<height>111</height>
|
<height>111</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>320</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>61</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>192.168.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_3">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>320</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>61</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>169.254.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_4">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>320</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>10.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_5">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>350</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>100.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_6">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>320</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ENT</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_7">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>350</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>/</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_8">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_9">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>440</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_10">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>410</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_11">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_12">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>410</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_13">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>440</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>3</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_14">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_15">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>410</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>5</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_16">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>440</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>6</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_17">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>7</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_18">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>410</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>8</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_19">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>440</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>9</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_20">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>380</x>
|
||||||
|
<y>220</y>
|
||||||
|
<width>91</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ping Olny</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_21">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>320</x>
|
||||||
|
<y>220</y>
|
||||||
|
<width>61</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>clear</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_22">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>600</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>61</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>1-65535</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_23">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>600</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>41</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>80;443</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_24">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>620</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>22</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_25">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>640</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>23</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_26">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>600</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>21</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_27">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>640</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>51</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>3389</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_28">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>660</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>445</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_29">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>600</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>41</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>25565</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_30">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>640</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>51</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>25;587</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QProgressBar" name="progressBar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>487</x>
|
||||||
|
<y>230</y>
|
||||||
|
<width>111</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_31">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>690</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_32">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>750</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>6</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_33">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>690</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>1</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_34">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>720</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>2</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_35">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>720</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>5</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_36">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>720</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>8</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_37">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>750</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>9</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_38">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>690</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>7</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_39">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>750</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>3</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_41">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>720</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_42">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>750</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_40">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>660</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>ENT</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_43">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>600</x>
|
||||||
|
<y>220</y>
|
||||||
|
<width>91</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>clear</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="pushButton_44">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>690</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>;</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="clearoutput">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>90</x>
|
||||||
|
<y>240</y>
|
||||||
|
<width>71</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>clear output</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|||||||
Reference in New Issue
Block a user