Редактор шаблонов |
Здравствуйте, гость ( Вход | Регистрация )
Редактор шаблонов |
genusatplay |
29.11.2008, 11:48
Сообщение
#1
|
Студент Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: 0 |
нужно написать программу "редактор шаблонов"
у нее должна быть область представления шаблона и например справа панель инструментов, в которой можно выбрать элемент (текст,таблица и т.д), перетащить элемент в окошко представления шаблона он должен выглядеть на подобии кнопки с именем элемента. далее если выделить элемент, то в панели инструментов появляется возможность редактировать свойства элемента(в БД есть таблица в которой каждому элементу присвоено значение, к примеру элемент text, в БД у него какое то значение есть, следовательно у элемента text должны быть свойства шрифт,размер, цвет и обычные свойства которые будут у всех типов элементов выравнивание, отступ слева, справа и тд, ) после создания шаблона все элементы кладутся в xml. xml вот такого вида должен получиться
а сам шаблон + документ(в БД) я уже могу с помощью консольной проги соединить и в пдф запихнуть по идее программа простая но только я не понимаю как это реализовать подскажите плиз с какой стороны копать и чем это реализовыватьь Сообщение отредактировал 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(); } |
|
|
Текстовая версия | Сейчас: 23.1.2025, 16:19 |