crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Редактор шаблонов
genusatplay
  опции профиля:
сообщение 29.11.2008, 11:48
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

Спасибо сказали: 0 раз(а)




Репутация:   0  


нужно написать программу "редактор шаблонов"
у нее должна быть область представления шаблона и например справа панель инструментов, в которой можно выбрать элемент (текст,таблица и т.д), перетащить элемент в окошко представления шаблона
он должен выглядеть на подобии кнопки с именем элемента.
далее если выделить элемент, то в панели инструментов появляется возможность редактировать свойства элемента(в БД есть таблица в которой каждому элементу присвоено значение, к примеру элемент text, в БД у него какое то значение есть, следовательно у элемента text должны быть свойства шрифт,размер, цвет и обычные свойства которые будут у всех типов элементов выравнивание, отступ слева, справа и тд, )
после создания шаблона все элементы кладутся в xml.
xml вот такого вида должен получиться
<?xml version='1.0' encoding='utf-8'?>
<shablon>
    <text name="text01">
        <size>22pt</size>
        <color>#66ff99</color>
        <font-family>serif</font-family>
        <margin-top>12px</margin-top>
        <margin-bottom>12px</margin-bottom>
        <margin-left>30px</margin-left>
        <margin-right>0px</margin-right>
        <font-weight>400</font-weight>
        <align>center</align>
    </text>
    ...
</shablon>

а сам шаблон + документ(в БД) я уже могу с помощью консольной проги соединить и в пдф запихнуть

по идее программа простая
но только я не понимаю как это реализовать
подскажите плиз с какой стороны копать и чем это реализовыватьь

Сообщение отредактировал genusatplay - 29.11.2008, 13:40
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
genusatplay
  опции профиля:
сообщение 3.12.2008, 12:39
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

Спасибо сказали: 0 раз(а)




Репутация:   0  


подскажите пожалйста почему не работает добавление элемента?


mainwindow.cpp
#include <QtGui>

#include "mainwindow.h"
#include "dragwidget.h"

MainWindow::MainWindow(QWidget *parent)
:QMainWindow(parent)
{
setupWidgets();
setupMenus();

setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
setWindowTitle(tr("Shablon editor"));
}

void MainWindow::setupMenus()
{
fileMenu = menuBar()->addMenu(tr("&File"));

exitAction = fileMenu->addAction(tr("E&xit"));
exitAction->setShortcut(QKeySequence(tr("Ctrl+Q")));
connect(exitAction, SIGNAL(triggered()) , qApp , SLOT(quit()));

itemMenu = menuBar()->addMenu(tr("&Item"));
addText = itemMenu->addAction(tr("Add &Text"));
connect(addText, SIGNAL(triggered()) , qApp , SLOT(addEl())); // несоздает почемуто лэйбл

}
void MainWindow::setupWidgets()
{
QFrame *frame = new QFrame;
QHBoxLayout *frameLayout= new QHBoxLayout(frame);

editor = new DragWidget;
frameLayout->addWidget(editor);

setCentralWidget(frame);
}
void MainWindow::addEl()
{
AddElem *elem = new AddElem(editor);
}

mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class DragWidget;
class QListWidgetItem;
class AddElem;

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = 0);
DragWidget *editor;
//AddElem *elem;
void addEl();


private:
void setupMenus();
void setupWidgets();

QMenu *fileMenu;
QMenu *itemMenu;

QAction *addText;
QAction *exitAction;


};
#endif

dragwidget.h
#ifndef DRAGWIDGET_H
#define DRAGWIDGET_H

#include <QFrame>

QT_BEGIN_NAMESPACE
class QDragEnterEvent;
class QDropEvent;
QT_END_NAMESPACE

//! [0]
class DragWidget : public QFrame
{
public:
DragWidget(QWidget *parent=0);
//void addElem(QFrame *parent);

protected:
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dropEvent(QDropEvent *event);
void mousePressEvent(QMouseEvent *event);
};
//! [0]

class AddElem : public QLabel
{
public:
AddElem(QFrame *parent=0);
};
#endif

dragwidget.cpp
#include <QtGui>

#include "dragwidget.h"

//! [0]
DragWidget::DragWidget(QWidget *parent)
: QFrame(parent)
{
setMinimumSize(200, 200);
setFrameStyle(QFrame::Sunken | QFrame::StyledPanel);
setAcceptDrops(true);
//setBackgroundRole(Qt::white);

QLabel *boatIcon = new QLabel(this);
boatIcon->setText("OMAGA");
boatIcon->move(40, 40);
boatIcon->show();
boatIcon->setAttribute(Qt::WA_DeleteOnClose);

QLabel *carIcon = new QLabel(this);
carIcon->setText("asdasd");
carIcon->move(120, 20);
carIcon->show();
carIcon->setAttribute(Qt::WA_DeleteOnClose);

QLabel *houseIcon = new QLabel(this);
//houseIcon->setPixmap(QPixmap(":/images/house.png"));
houseIcon->setText("!@!@");
houseIcon->move(20, 120);
houseIcon->show();
houseIcon->setAttribute(Qt::WA_DeleteOnClose);

//AddElem *elem = new AddElem(this); //так элемент добавляется нормально
}
//! [0]

void DragWidget::dragEnterEvent(QDragEnterEvent *event)
{
...
}

void DragWidget::dragMoveEvent(QDragMoveEvent *event)
{
...
}

void DragWidget::dropEvent(QDropEvent *event)
{
...
}
void DragWidget::mousePressEvent(QMouseEvent *event)
{
...
}
AddElem::AddElem(QFrame *parent)
: QLabel(parent)
{

QLabel *elem = new QLabel(parent);
elem->setText("TextElement");
elem->move(10,10);
elem->show();
elem->setAttribute(Qt::WA_DeleteOnClose);
}

main.cpp
#include <QApplication>
#include <QHBoxLayout>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

MainWindow w;
w.show();
//w.addEl(); //так тоже элемент добавляется

return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- genusatplay   Редактор шаблонов   29.11.2008, 11:48
- - Litkevich Yuriy   genusatplay, что-то с русским языком у тебя совсем...   29.11.2008, 13:02
|- - genusatplay   Цитата(Litkevich Yuriy @ 29.11.2008, 13:0...   29.11.2008, 13:10
- - molchanoviv   Цитата(Litkevich Yuriy @ 29.11.2008, 13:0...   29.11.2008, 13:18
- - genusatplay   так лучше?   29.11.2008, 13:41
- - Litkevich Yuriy   все равно понятного мало, это что-то вроде Qt Desi...   29.11.2008, 14:21
|- - genusatplay   Цитата(Litkevich Yuriy @ 29.11.2008, 14:2...   29.11.2008, 14:41
- - Litkevich Yuriy   genusatplay, я в толк взять не могу, для чего шабл...   29.11.2008, 15:22
- - genusatplay   у меня просто задание сделать консольную прогу кот...   29.11.2008, 16:17
|- - kwisp   Цитата(genusatplay @ 29.11.2008, 16:17) у...   29.11.2008, 17:37
|- - genusatplay   Цитата(kwisp @ 29.11.2008, 17:37) Цитата(...   29.11.2008, 18:57
|- - kwisp   а вопрос состоял: с чего начать??? если мало маль...   29.11.2008, 20:13
|- - genusatplay   Цитата(kwisp @ 29.11.2008, 20:13) а вопро...   30.11.2008, 8:03
- - kwisp   можно попробовать сделать так: будет два документа...   30.11.2008, 21:11
|- - genusatplay   Цитата(kwisp @ 30.11.2008, 21:11) можно п...   30.11.2008, 23:27
- - kwisp   elemList = new List(); //чего это такое?? я сдела...   1.12.2008, 11:38
- - genusatplay   в qt demos есть пример с пазлм из картинки там нап...   1.12.2008, 16:56
- - Litkevich Yuriy   Цитата(genusatplay @ 1.12.2008, 19:56) и ...   1.12.2008, 17:10
|- - genusatplay   Цитата(Litkevich Yuriy @ 1.12.2008, 17:10...   1.12.2008, 17:17
- - Litkevich Yuriy   Цитата(genusatplay @ 1.12.2008, 20:17) а ...   1.12.2008, 17:22
|- - genusatplay   Цитата(Litkevich Yuriy @ 1.12.2008, 17:22...   1.12.2008, 17:27
- - Litkevich Yuriy   вот этой строке: QIcon icon = qApp->style...   1.12.2008, 17:51
- - genusatplay   подскажите плиз что мне делать? я не представляю в...   1.12.2008, 22:28
- - genusatplay   как мне сделать чтото типа записи? хочу сделать ли...   2.12.2008, 0:06
- - trdm   как все запущено...   2.12.2008, 2:50
- - Litkevich Yuriy   Цитата(genusatplay @ 2.12.2008, 3:06) поя...   2.12.2008, 7:37
|- - genusatplay   Цитата(Litkevich Yuriy @ 2.12.2008, 7:37)...   2.12.2008, 13:40
- - kwisp   genusatplay, не в обиду. по вопросам ясно что знан...   2.12.2008, 15:06
|- - genusatplay   Цитата(kwisp @ 2.12.2008, 15:06) genusatp...   2.12.2008, 20:10
|- - kwisp   Цитата(genusatplay @ 2.12.2008, 20:10) хе...   3.12.2008, 0:23
|- - molchanoviv   Цитата(genusatplay @ 2.12.2008, 20:10) хе...   3.12.2008, 9:10
- - Litkevich Yuriy   genusatplay, присоеденюсь к kwisp, тема Перетаскив...   2.12.2008, 15:15
|- - genusatplay   Цитата(Litkevich Yuriy @ 2.12.2008, 15:15...   2.12.2008, 20:16
- - Litkevich Yuriy   Цитата(genusatplay @ 2.12.2008, 23:10) сд...   2.12.2008, 20:14
- - Litkevich Yuriy   genusatplay, ну замени здесь QLable (два штуки) на...   2.12.2008, 20:48
- - genusatplay   вот упростил.. скажите плиз почему элемент не доба...   2.12.2008, 23:46
- - Litkevich Yuriy   Цитата(molchanoviv @ 3.12.2008, 12:10) А ...   3.12.2008, 10:55
- - genusatplay   подскажите пожалйста почему не работает добавление...   3.12.2008, 12:39
- - genusatplay   народ помогите плиз советом.. у меня есть QGraphic...   10.12.2008, 22:24
- - Litkevich Yuriy   Цитата(genusatplay @ 11.12.2008, 1:24) мб...   10.12.2008, 22:27
|- - genusatplay   Цитата(Litkevich Yuriy @ 10.12.2008, 22:2...   10.12.2008, 23:04
- - Litkevich Yuriy   Цитата(genusatplay @ 11.12.2008, 2:04) вр...   11.12.2008, 4:30


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


28 чел. читают эту тему (гостей: 28, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.1.2025, 16:19