Вообщем мне необходимо сделать программу в виде чата.. внизу вводишь нажимаешь ентер и выводиться сверху вот так:
Цитата
> Я ввел это предложение
#include <QtGui>
//#include "chat.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSplitter sp1(Qt::Vertical);
QTextEdit *ptxt1 = new QTextEdit;
QTextEdit *ptxt2 = new QTextEdit;
sp1.addWidget(ptxt1);
sp1.addWidget(ptxt2);
ptxt1->setPlainText("Line 1\n"
"Line 2\n");
ptxt1->setReadOnly(1);
sp1.resize(200, 220);
sp1.show();
return a.exec();
}
...
QString myText;
...
QTextDocument *doc = textEdit->document();
doc->setPlainText(myText + doc->toPlainText());
...
#include <QtGui/QApplication>
#include "button.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Button wgt;
wgt.show();
return a.exec();
}
#include "button.h"
Button::Button(QWidget *parent)
: QWidget(parent)
{
QTextEdit *ptxt1 = new QTextEdit;
QTextEdit *ptxt2 = new QTextEdit;
QPushButton *cmd = new QPushButton("Add");
QHBoxLayout * MyHLayout = new QHBoxLayout;
QVBoxLayout * MyVLayout = new QVBoxLayout;
MyHLayout->setMargin(10);
MyHLayout->setSpacing(20);
MyHLayout->addWidget(ptxt2);
MyHLayout->addWidget(cmd);
MyVLayout->addWidget(ptxt1);
MyVLayout->addLayout(MyHLayout);
setLayout(MyVLayout);
setWindowTitle("Test Chat");
setGeometry(5,5, 200, 100);
connect(cmd, SIGNAL(clicked()),
SLOT(mySlot())
);
}
void Button::mySlot()
{
ptxt1->selectAll();
ptxt1->cut();
ptxt2->paste();
}
#ifndef BUTTON_H
#define BUTTON_H
#include <QtGui>
class Button : public QWidget
{
Q_OBJECT
public:
QTextEdit *ptxt1;
QTextEdit *ptxt2;
QPushButton *cmd;
QHBoxLayout *MyHLayout;
QVBoxLayout *MyVLayout;
Button(QWidget *parent = 0);
~Button() {};
public slots:
void mySlot();
};
#endif // BUTTON_H
void Button::mySlot()
{
qDebug() << "mySlot";
ptxt1->selectAll();
qDebug() << "selectAll";
ptxt1->cut();
qDebug() << "cut";
ptxt2->paste();
qDebug() << "paste";
}
в pro-файл, добавь:#include "button.h"
Button::Button(QWidget *parent)
: QWidget(parent)
{
QTextEdit *ptxt1 = new QTextEdit;
QTextEdit *ptxt2 = new QTextEdit;
QPushButton *cmd = new QPushButton("Add");
QHBoxLayout * MyHLayout = new QHBoxLayout;
QVBoxLayout * MyVLayout = new QVBoxLayout;
MyHLayout->setMargin(10);
MyHLayout->setSpacing(20);
MyHLayout->addWidget(ptxt2);
MyHLayout->addWidget(cmd);
MyVLayout->addWidget(ptxt1);
MyVLayout->addLayout(MyHLayout);
setLayout(MyVLayout);
setWindowTitle("Test Chat");
setGeometry(5,5, 200, 100);
connect(cmd, SIGNAL(clicked()),
this, SLOT(mySlot())
);
}
void Button::mySlot()
{
qDebug() << "mySlot";
ptxt1->selectAll();
qDebug() << "selectAll";
ptxt1->cut();
qDebug() << "cut";
ptxt2->paste();
qDebug() << "paste";
}
#include "button.h"
Button::Button(QWidget *parent)
: QWidget(parent)
{
ptxt1 = new QTextEdit;
ptxt2 = new QTextEdit;
cmd = new QPushButton("Add");
QHBoxLayout * MyHLayout = new QHBoxLayout;
QVBoxLayout * MyVLayout = new QVBoxLayout;
MyHLayout->setMargin(10);
MyHLayout->setSpacing(20);
MyHLayout->addWidget(ptxt2);
MyHLayout->addWidget(cmd);
MyVLayout->addWidget(ptxt1);
MyVLayout->addLayout(MyHLayout);
setLayout(MyVLayout);
setWindowTitle("Test Chat");
setGeometry(5,5, 200, 100);
connect(cmd, SIGNAL(clicked()),
this, SLOT(mySlot())
);
}
QString str = ptxt2->toPlainText();
ptxt1->insertPlainText("> ");
ptxt1->insertPlainText(str);
ptxt1->insertPlainText("\n");
QString str = ptxt2->toPlainText();
ptxt1->insertPlainText( QString( "> " ) + str + "\n" );
// или
ptxt1->insertPlainText( QString( "> %1\n" ).arg( str ) );
int count = 0;
QString str = ptxt2->toPlainText();
if(str.contains("Привет")==1)
count = 1;
qDebug() << count;
if(count == 1)
{
ptxt1->insertPlainText("Bot: H1\n");
count = 0;
}
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
вместо UTF-8 укажи кодировку, в которой сам исходник пишется.tr("Привет")
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
вместо UTF-8 укажи кодировку, в которой сам исходник пишется.tr("Привет")
qatmp = new QAction(this);
qatmp->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Return));
connect(qatmp,SIGNAL(triggered()), this,SLOT(mySlot()));
addAction(qatmp);