سلام من کد زیر رو دارم
#ifndef CONSOLEWIDGET_H
#define CONSOLEWIDGET_H
#include <QWidget>
#include <QTimer>
namespace Ui {
class ConsoleWidget;
}
class ConsoleWidget : public QWidget
{
Q_OBJECT
public:
explicit ConsoleWidget(QWidget *parent = 0);
ConsoleWidget& operator <<(QString text);
ConsoleWidget& operator <<(const char* text);
~ConsoleWidget();
private:
Ui::ConsoleWidget *ui;
QTimer timer;
QStringList buffer;
private slots:
void refreshWindow();
};
#endif // CONSOLEWIDGET_H
#include "consolewidget.h"
#include "ui_consolewidget.h"
ConsoleWidget::ConsoleWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::ConsoleWidget)
{
ui->setupUi(this);
ui->textBrowser->setFont(QFont("Tahoma",10,5));
ui->textBrowser->setStyleSheet("background-color: rgb(0, 0, 0);"
"color: rgb(255, 255, 255);");
connect(&timer,SIGNAL(timeout()),this,SLOT(refreshWindow()));
}
ConsoleWidget& ConsoleWidget::operator <<(QString text)
{
buffer.push_back(text);
timer.start(30);
return *this;
}
ConsoleWidget& ConsoleWidget::operator <<(const char *text)
{
buffer.push_back(QString(text));
timer.start(30);
return *this;
}
ConsoleWidget::~ConsoleWidget()
{
delete ui;
}
void ConsoleWidget::refreshWindow()
{
QString text=ui->textBrowser->toPlainText();
for(int i=0;i<buffer.size();i++)
text += buffer[i];
ui->textBrowser->setText(text);
buffer.clear();
}
من از داخل یک فایل دیگه اینو که به این شکل استفاده می کنم برنامم هنگ می کنه . مشکلش چیه ؟
for(int i=0;i<100;i++)
consoleWidget<<QString("test")<<"\n";